System (Pipes, Sockets, SSL, XML, Files, Data Conversion, Windows Registry, Computer Information, ...) (namespace Sys)


Array
Array()
Array(const Array& init)
Array<T >& operator =(const Array& init)
T& Get(int index)
T& operator [ ](int index)
bool CreateFromFile(HANDLE hFile)
bool InsertAtEnd(const T& value)
bool Reserve(int size)
bool SaveToFile(HANDLE hFile)
bool SetSize(int size)
const T& operator [ ](int index)const
explicit Array(int size)
int GetSize()
virtual ~ Array()
void Delete(void)
void Erase(int index)
void EraseLastOne()
void Insert(int index, const T& value)
void Set(int index, const T& value)

Base85Encoder: It converts a input file to 8 bit bytes into printable ASCII from '!' to 'u' 'z' is used to encode a 32-bit zero 'x' is used to mark the end of encoded data https: en.wikipedia.org/wiki/Ascii85
Base85Encoder()
bool Encode(const wchar_t* filename, bool useAdobeStandard, string& output)
~ Base85Encoder()

Bitmap
Bitmap()
HBITMAP GetHBitmap()
HBITMAP Load(HINSTANCE hinst, LPCTSTR lpszName, int cxDesired, int cyDesired, UINT fuLoad)
HBITMAP Load(HINSTANCE hinst, int bitmap_id)
operator HBITMAP()
~ Bitmap()

BoolArray: It stores a set of bool values
BoolArray& operator +=(const Sys::BoolArray& init)
BoolArray& operator =(const Sys::BoolArray& init)
BoolArray()
BoolArray(const Sys::BoolArray& init)
BoolArray(const wchar_t* stringBits)
BoolArray(size_t bitCount)
Sys::BoolArray operator Unrecognized character ^(const Sys::BoolArray& init)const
Sys::BoolArray operator |(const Sys::BoolArray& init)const
Sys::BoolArray operator&(const Sys::BoolArray& init)const
Sys::BoolArray& operator Unrecognized character ^ =(const Sys::BoolArray& init)
Sys::BoolArray& operator | =(const Sys::BoolArray& init)
Sys::BoolArray& operator& =(const Sys::BoolArray& init)
__int16 GetInt16(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/16)-1
__int32 GetInt32(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/32)-1
__int64 GetInt64(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/64)-1
__int8 GetInt8(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/8)-1
bool AppendBit(bool value)
It is similar to push_back in the STL
bool AppendBits(unsigned __int16 inputBits)
bool AppendBits(unsigned __int32 inputBits)
bool AppendBits(unsigned char inputBits)
bool AppendFirstBits(unsigned char inputBits, size_t bitCount)
It appends only the first bits in inputBits. Therefore, bitCount must be equal to or less than eight
bool AreAllOne() const
bool AreAllZero() const
bool AtLeastOneOne() const
bool AtLeastOneZero() const
bool CopyBits(const Sys::BoolArray& source, size_t indexStart, size_t indexEnd)
It copies the specified bits from one array to the other one in the same position in both arrays
bool Create(size_t bitCount)
bool CsvLoad(const wchar_t* filename)
bool CsvSave(const wchar_t* filename)const
bool GetBit(size_t bitIndex)const
bool GetNextBit()
It returns the bit at the current position and moves ahead one position Call SetPosition(0) to restore the current position to the position of the first bit If IsEndPosition() returns false, you can call again GetNextBit() If IsEndPosition() returns true, you must not call GetNextBit() To improve performance, instead of calling IsEndPosition(), you can use your own counter
bool IsEmpty() const
bool IsEndPosition()
It returns true, when the read position has reached the end of the bits A call to GetNextBit() or GetNext8Bits() after IsEndPosition() has returned true, will produce a memory access violation
bool Reserve(size_t bitCount)
bool SetBinary(const string& data)
bool operator !=(const Sys::BoolArray& init)const
bool operator ==(const Sys::BoolArray& init)const
const unsigned char* GetData() const
It returns the buffer where the bits are stored
size_t GetActiveBitCount() const
size_t GetBitCount() const
size_t GetReadingBitsPosition()
It returns a value from zero to bitCount-1, represeting the position for GetNextBit or GetNext8Bits
unsigned __int16 GetUInt16(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/16)-1
unsigned __int32 GetUInt32(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/32)-1
unsigned __int64 GetUInt64(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/64)-1
unsigned __int8 GetUInt8(size_t arrayIndex)const
arrayIndex can take a value from 0 to (bitCount/8)-1
unsigned char GetNext8Bits()
It returns the eight bits at the current position and moves ahead the position eight bits Call SetPosition(0) to restore the current position to the position of the first bit If IsEndPosition() returns false, you can call again GetNext8Bits() If IsEndPosition() returns true, you must not call GetNext8Bits() To improve performance, instead of calling IsEndPosition(), you can use your own counter
void Delete(void)
void FlipAllBits()
void FlipBit(size_t bitIndex)
void GetBinary(string& out_data)const
void GetString(wchar_t* buffer, size_t bufferSize)const
void GetString(wstring& output)const
void Set(const wchar_t* stringBits)
void SetAllToOne()
void SetAllToZero()
void SetBit(size_t bitIndex, bool value)
void SetInt16(size_t arrayIndex, __int16 value)
arrayIndex can take a value from 0 to (bitCount/16)-1
void SetInt32(size_t arrayIndex, __int32 value)
arrayIndex can take a value from 0 to (bitCount/32)-1
void SetInt64(size_t arrayIndex, __int64 value)
arrayIndex can take a value from 0 to (bitCount/64)-1
void SetInt8(size_t arrayIndex, __int8 value)
arrayIndex can take a value from 0 to (bitCount/8)-1
void SetPosition(size_t arrayIndex)
It moves the current position of the function GetNextBit() byte to byte (8 bits at a time) When SetPosition(0) is called the next call to GetNextBit() will return the value of the 1st bit in the array When SetPosition(1) is called the next call to GetNextBit() will return the value of the 9th bit in the array
void SetUInt16(size_t arrayIndex, unsigned __int16 value)
arrayIndex can take a value from 0 to (bitCount/16)-1
void SetUInt32(size_t arrayIndex, unsigned __int32 value)
arrayIndex can take a value from 0 to (bitCount/32)-1
void SetUInt64(size_t arrayIndex, unsigned __int64 value)
arrayIndex can take a value from 0 to (bitCount/64)-1
void SetUInt8(size_t arrayIndex, unsigned __int8 value)
arrayIndex can take a value from 0 to (bitCount/8)-1
void Show(HWND hWnd, const wchar_t* caption)const
~ BoolArray(void)

Bound2D: Stores a 2D Point and additional information (dx and dy) that it is used internally for quick collision detection A line segment requires two Bound2D objects An irregular shape requires a set of Bound2D objects, the first and the last Bound2D object must be equal
Bound2D()
static bool DoIntersect(Sys::Bound2D& b1, Sys::Bound2D& b2, Sys::Bound2D& b3, Sys::Bound2D& b4)
static bool DoIntersect(Sys::Bound2D& b1, Sys::Bound2D& b2, Sys::Bound2D& b3, Sys::Bound2D& b4, Sys::Point2D& out_intersection)
static bool DoIntersect(vector<Sys::Bound2D >& bounds1, vector<Sys::Bound2D >& bounds2)
static bool DoIntersect(vector<Sys::Bound2D >& bounds1, vector<Sys::Bound2D >& bounds2, Sys::Point2D& out_intersection)
static float Distance(Sys::Point2D& p1, Sys::Point2D& p2)
static float ShortestDistance(Sys::Point2D& p1, Sys::Point2D& p2, vector<Sys::Bound2D >& bounds)
~ Bound2D()

Brushes
static HBRUSH BlackBrush()
static HBRUSH DkGrayBrush()
static HBRUSH GrayBrush()
static HBRUSH HollowBrush()
static HBRUSH LtGrayBrush()
static HBRUSH NullBrush()
static HBRUSH WhiteBrush()

Buffer
Buffer& operator =(const Sys::Buffer& ini)
Buffer()
Buffer(const Sys::Buffer& ini)
bool Create(const Sys::Buffer& in_buffer, size_t position1, size_t position2)
bool CreateFromFile(const wchar_t* filename)
bool CreateFromFile(const wstring& filename)
bool CreateFromText(const char* in_text)
bool CreateFromText(const string& in_text)
bool Feof()
It returns true, if current position is at the end
bool Ferror()
It returns true, if error
bool Reserve(size_t size)
It is used to reserve space and improve performance
bool SaveToFile(const wchar_t* filename)
bool SaveToFile(const wstring& filename)
bool SetSize(size_t size)
It changes the size of the buffer preserving the current data
bool push_back(unsigned __int8 value)
char* GetBuffer()
char* GetData()
int GetHttpHeadEndPosition()
It returns the position of \r\n\r\n or -1, if not found
int Read(void* out_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were read, or -1 if error
int Receive(char* out_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were received, or -1 if error
int Send(const char* in_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were sent, or -1 if error
int Write(const void* in_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were written, or -1 if error
operator char*()
operator const char*() const
size_t GetSize() const
It returns the number of bytes stored in the buffer
void Delete()
It deletes the content of the buffer
void GetText(string& out_text)
It returns the text stored in the buffer. As the buffer can store any type of data, you must call this function when you know that there is text in the buffer
void GetText(wstring& out_text, bool isUtf8)
It returns the text stored in the buffer and converts the text to wstring. If isUtf8 is true, it is assumed that the buffer has UTF-8 text As the buffer can store any type of data, you must call this function when you know that there is text in the buffer
void Reset()
When reading, it resets the reading position When writing, tt removes the information from the buffer while keeping the memory allocation
~ Buffer()
size_t Size

BufferReader: It reads values from a string
BufferReader()
bool Read(char& out_character)
Before start reading, you must call Begin()
bool Read(unsigned char& out_character)
Before start reading, you must call Begin()
bool Read(void* data, size_t numBytes)
Before start reading, you must call Begin()
bool ReadBinary(__int16& out_value)
Before start reading, you must call Begin()
bool ReadBinary(__int32& out_value)
Before start reading, you must call Begin()
bool ReadBinary(float& out_value)
Before start reading, you must call Begin()
bool ReadBinary(unsigned __int16& out_value)
Before start reading, you must call Begin()
bool ReadBinary(unsigned __int32& out_value)
Before start reading, you must call Begin()
bool ReadBinary(wstring& out_value)
Before start reading, you must call Begin()
void Begin()
~ BufferReader()

BufferReaderV: It reads values from a vector buffer This is implemented for UWP applications
BufferReaderV()
bool Read(char& out_character)
bool Read(unsigned char& out_character)
bool Read(void* _data, size_t numBytes)
bool ReadBinary(__int16& out_value)
bool ReadBinary(__int32& out_value)
bool ReadBinary(float& out_value)
bool ReadBinary(unsigned __int16& out_value)
bool ReadBinary(unsigned __int32& out_value)
bool ReadBinary(wstring& out_value)
void Begin()
~ BufferReaderV()

BufferWriter
BufferWriter()
bool Write(void* data, size_t numBytes)
bool WriteBinary(__int16 value)
bool WriteBinary(__int32 value)
bool WriteBinary(__int8 value)
bool WriteBinary(const wstring& value)
bool WriteBinary(float value)
bool WriteBinary(unsigned __int16 value)
bool WriteBinary(unsigned __int32 value)
bool WriteBinary(unsigned __int8 value)
~ BufferWriter()

CMYKColor
CMYKColor()
double GetBlack() const
double GetCyan() const
double GetMagenta() const
double GetYellow() const
void Set(double cyan, double magenta, double yellow, double black)
void SetBlack(double yellow)
void SetCyan(double cyan)
void SetMagenta(double magenta)
void SetYellow(double yellow)
~ CMYKColor()
double Cyan
double Magenta
double Yellow
double Black

CharInfo
COLORREF color = RGB(0, 0, 0)
CharInfo()
void Clear()
~ CharInfo()

Color
COLORREF GetColor() const
COLORREF GetDarkShadowColor()
COLORREF GetFocusBorderColor()
COLORREF GetHighLightColor()
COLORREF GetLightColor()
COLORREF GetNoFocusBorderColor()
COLORREF GetNoFocusColor()
COLORREF GetShadowColor()
COLORREF GetWhiteBlendColor(int whiteLevel)
It returns a lighter color if whiteLevel is positive It returns a darker color if whiteLevel is negative whiteLevel can be in the range from -255 to 255 For a 3D edge, whiteLevel: 50, 25, -30, -60
Color()
Color(COLORREF color)
Color(unsigned __int8 red, unsigned __int8 green, unsigned __int8 blue)
Sys::Color operator +(const COLORREF& init)const
Sys::Color operator +(const Sys::Color& init)const
Sys::Color& operator +=(const COLORREF& init)
Sys::Color& operator +=(const Sys::Color& init)
bool IsCloseToBlack()
double GetHue()
double GetLightness()
From 0 to 1
double GetSaturation()
From 0 to 1
int GetLuma()
Luma is the weighted average of gamma-corrected R, G, and B, based on their contribution to perceived luminance. The function returns a value from 0 to 255
static bool IsCloseToBlack(COLORREF color)
static double GetColorDifference(const COLORREF& colorA, const COLORREF& colorB)
static double GetColorDifference(const RGBQUAD& colorA, const RGBQUAD& colorB)
static int GetLuma(COLORREF color)
Luma is the weighted average of gamma-corrected R, G, and B, based on their contribution to perceived luminance. The function returns a value from 0 to 255
void BlendWithWhite(int whiteLevel)
whiteLevel can be in the range from -255 to 255
void SetColor(COLORREF color)
void SetHue(double hue)
void SetLightness(double lightness)
From 0 to 1
void SetSaturation(double saturation)
From 0 to 1
~ Color()
COLORREF Value
double Hue
double Lightness
double Saturation

ColorF
ColorF()
ColorF(float red, float green, float blue, float alpha)
bool IsValid()
void Delete()
~ ColorF()

ColorRGBA
ColorRGBA()
void Delete()
~ ColorRGBA()

Colors: It provides access to the standard color used in the computer
static COLORREF ActiveBorderColor()
static COLORREF ActiveCaptionColor()
static COLORREF AppWorkspaceColor()
static COLORREF BackgroundColor()
static COLORREF BtnFaceColor()
static COLORREF BtnHighLightColor()
static COLORREF BtnShadowColor()
static COLORREF BtnTextColor()
static COLORREF CaptionTextColor()
static COLORREF GradientActiveCatpionColor()
static COLORREF GradientInactiveCaptionColor()
static COLORREF GrayTextColor()
static COLORREF HighLightColor()
static COLORREF HighLightTextColor()
static COLORREF HotLightColor()
static COLORREF InactiveBorderColor()
static COLORREF InactiveCaptionColor()
static COLORREF InactiveCaptionTextColor()
static COLORREF InfoBkColor()
static COLORREF InfoTextColor()
static COLORREF MenuColor()
static COLORREF MenuTextColor()
static COLORREF ScrollbarColor()
static COLORREF ThreeDDkShadowColor()
static COLORREF ThreeDLightColor()
static COLORREF WindowColor()
static COLORREF WindowFrameColor()
static COLORREF WindowTextColor()

Convert: It provides a set of helper functions to perform data conversion
# endif # ifdef WIN_SOCKETS_SUPPORT static Sys::Time& InternetTimeToSystemTime(unsigned int inputNetworkTime, Sys::Time& output)
# endif # ifndef WINTEMPLA_UWP static const wchar_t* Convert::PngToIcon(const wchar_t* pngFilename, const wchar_t* iconFilename)
# endif static COLORREF TextToColorRef(const wchar_t* text)
# endif static __int64 Endianness(const __int64& input)
# endif static int ToYear(wstring& text)
# ifdef WIN_GDI_PLUS_ON static bool Image(const wchar_t* inputFilename, const wchar_t* outputFilename, unsigned int quality)
# ifndef WINTEMPLA_UWP static COLORREF OleColorToColorRef(const OLE_COLOR input)
# ifndef WINTEMPLA_UWP static Sys::Time VariantToTime(const _variant_t& input)
static COLORREF CMYKColorToRgb(const Sys::CMYKColor& cmykColor)
static COLORREF DoubleToColorRef(double value, bool isStandardFormat)
static COLORREF DoubleToColorRef(double value, bool isStandardFormat, int numColors)
value [0 1] numColors = 2: Blue > Cyan numColors = 3: Blue > Cyan > Green numColors = 4: Blue > Cyan > Green > Yellow numColors = 5: Blue > Cyan > Green > Yellow > Red numColors = 6: Blue > Cyan > Green > Yellow > Red > Purple numColors = 7: Blue > Cyan > Green > Yellow > Red > Purple > Black
static COLORREF DoubleToColorRef2(double value, bool isStandardFormat, int numColors)
value [0 1] numColors = 2: Light Blue > Light Cyan numColors = 3: Light Blue > Light Cyan > Light Green numColors = 4: Light Blue > Light Cyan > Light Green > Light Yellow numColors = 5: Light Blue > Light Cyan > Light Green > Light Yellow > Light Red numColors = 6: Light Blue > Light Cyan > Light Green > Light Yellow > Light Red > Light Purple numColors = 7: Light Blue > Light Cyan > Light Green > Light Yellow > Light Red > Light Purple > Gray
static COLORREF HSLColorToRgb(const Sys::HSLColor& hslColor)
It converts a HSL space color to a RGB color H[0 360], S[0 1], L[0 1] R[0 255], G[0 255], B[0 255]
static COLORREF IntToColorRef(int value, bool isStandardFormat)
value [0 1535]
static COLORREF IntToColorRef2(int value, bool isStandardFormat)
value [0 1535]
static COLORREF TextToColorRef(const wstring& text)
static OLE_COLOR ColorRefToOleColor(const COLORREF input)
static Sys::Time& ToTime(const wchar_t* input, Sys::Time& output)
static Sys::Time& ToTime(const wstring& input, Sys::Time& output)
static __int16 Endianness(const __int16& input)
static __int32 Endianness(const __int32& input)
static _variant_t TimeToVariant(const Sys::Time& input)
static bool AbsolutePathToRelativePath(const wchar_t* in_basePath, const wchar_t* in_absolutePath, wstring& out_relativePath)
It converts an absolute path (i.e., c:\Users\John\documents ) to a relative path such (i.e., ..\..\documents )
static bool Base64BitDecode(const char* input, const int inputLen, string& output)
static bool Base64BitEncode(const char* input, const int inputLen, string& output)
static bool HFontToLogFont(HFONT hFont, LOGFONT& out_logFont)
static bool HiMetricToPixel(const SIZEL& inputHiMetric, SIZEL& resultPix)
static bool HresultToWstring(HRESULT hr, const char* funcName, const char* cmdName, int line, const char* fileName, wstring& output)
It returns if the hr is OK
static bool IsBase64(unsigned char input)
static bool PixelToHiMetric(const SIZEL& inputPix, SIZEL& resultHiMetric)
static bool RelativePathToAbsolutePath(const wchar_t* in_basePath, const wchar_t* in_relativePath, wstring& out_absolutePath)
It converts a relative path (i.e., ..\..\documents) to an absolute path (i.e., c:\Users\John\documents )
static bool ToBool(const wchar_t* input)
static bool ToBool(const wstring& input)
static bool ToMatrix(const char* input, MATRIX& output)
static bool ToMatrix(const char* input, MATRIXC& output)
static bool ToMatrix(const string& input, MATRIX& output)
static bool ToMatrix(const string& input, MATRIXC& output)
static bool ToMatrix(const valarray<complex<double>>& input, MATRIXC& output)
static bool ToMatrix(const valarray<double >& input, MATRIX& output)
static bool ToMatrix(const wchar_t* input, MATRIX& output)
static bool ToMatrix(const wchar_t* input, MATRIXC& output)
static bool ToMatrix(const wstring& input, MATRIX& output)
static bool ToMatrix(const wstring& input, MATRIXC& output)
static bool ToVector(const char* input, valarray<complex<double>>& output)
static bool ToVector(const char* input, valarray<double >& output)
static bool ToVector(const char* input, vector<double >& output)
static bool ToVector(const string& input, valarray<complex<double>>& output)
static bool ToVector(const string& input, valarray<double >& output)
static bool ToVector(const string& input, vector<double >& output)
static bool ToVector(const wchar_t* input, valarray<complex<double>>& output)
static bool ToVector(const wchar_t* input, valarray<double >& output)
static bool ToVector(const wchar_t* input, vector<double >& output)
static bool ToVector(const wstring& input, valarray<complex<double>>& output)
static bool ToVector(const wstring& input, valarray<double >& output)
static bool ToVector(const wstring& input, vector<double >& output)
static bool UTF8ToWstring(const Sys::Buffer& input, wstring& output)
static bool UTF8ToWstring(const char* input, size_t input_size, wstring& output)
static bool UTF8ToWstring(const string& input, wstring& output)
static bool UrlDecode(const char* input, string& output)
static bool UrlDecode(const char* input, wstring& output)
static bool UrlEncode(const char* input, bool usePlusSignForSpaces, string& output)
static bool UrlEncode(const wchar_t* input, bool usePlusSignForSpaces, string& output)
static bool UrlEncode(const wchar_t* input, bool usePlusSignForSpaces, wstring& output)
static bool ValarrayToSizeTVector(const valarray<double >& input, valarray<size_t >& output)
static bool WcharToUTF8(const wchar_t* input, string& output)
static bool WstringToCompactString(const wchar_t* input, string& output)
Output: input-31, input[1]-31, input[2]-31, ... This function allows compacting text int english, spanish, german, italian and french using only 255 characters
static bool WstringToUTF8(const wstring& input, Sys::Buffer& output)
static bool WstringToUTF8(const wstring& input, string& output)
static char WstringToCompactString(const wchar_t input)
It returns input-31. The nullptr terminator is preserved. It accepts oe and OE. This function allows compacting text int english, spanish, german, italian and french using only 255 characters The maximum input value is 0x011C (284 or G^ Capital G with circumflex)
static complex<double>ToComplex(const char* input)
static complex<double>ToComplex(const string& input)
static complex<double>ToComplex(const wchar_t* input)
static complex<double>ToComplex(const wstring& input)
static const wchar_t ToXmlName(wchar_t c)
static const wchar_t* HresultToText(HRESULT hr)
static const wchar_t* ToHtml(wchar_t c)
static const wchar_t* ToString(bool input)
static const wchar_t* ToVector(const MATRIX& input, int col_index, valarray<double >& output)
static const wchar_t* ToVector(const MATRIXC& input, int col_index, valarray<complex<double>>& output)
static const wchar_t* ToXml(wchar_t c)
static double LogicUnitsToFontPoint(HDC hdc, int logicUnits)
static double ScreenPixelsToCentimeters(int pixels)
static double ScreenPixelsToFontPoint(int pixels)
static double ToDouble(const char* input)
static double ToDouble(const string& input)
static double ToDouble(const wchar_t* input)
static double ToDouble(const wstring& input)
static int CentimetersToDlgUnitX(double centimeters)
static int CentimetersToDlgUnitY(double centimeters)
static int CentimetersToScreenPixels(double centimeters)
static int DateToString(const Sys::Time& input, const wchar_t* format, wchar_t* out_buffer, int buffer_len)
format day: d, dd, ddd or dddd format month: M, MM, MMM or MMMM format year: y, yy, yyy or yyyy format: L"ddd',' MMM dd yyyy" it returns the number of characters written to the buffer. If buffer_len is not enough, it returns the negative of the required buffer length
static int DlgUnitToPixelX(int dialogUnits)
static int DlgUnitToPixelY(int dialogUnits)
static int FontPointToLogicUnits(HDC hdc, double fontPoints)
static int FontPointToScreenPixels(double fontPoints)
static int HexStringToInt(const char* input)
static int HexStringToInt(const wchar_t* input)
static int HexToInteger(wchar_t input)
From: 0, 1, 2, 3, ... 9, A, B, C, D, E, F to integer
static int HresultToWstring(HRESULT hr, wstring& output)
Formats a message string. The function requires a message definition as input. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition. The function finds the message definition in a message table resource based on a message identifier and a language identifier.  Google Microsoft
static int PixelToDlgUnitX(int pixels)
static int PixelToDlgUnitY(int pixels)
static int TimeToString(const Sys::Time& input, const wchar_t* format, wchar_t* out_buffer, int buffer_len)
format: L"hh':'mm':'ss tt" it returns the number of characters written to the buffer. If buffer_len is not enough, it returns the negative of the required buffer length
static int ToInt(const char* input)
static int ToInt(const string& input)
static int ToInt(const wchar_t* input)
static int ToInt(const wstring& input)
static int ToMonth(wstring& text)
static int ToMonthDay(wstring& text)
static int ToString(const complex<double >& input, char* out_buffer, int out_buffer_size, bool compactFormat)
It returns the number of characters in the output string
static int ToString(const complex<double >& input, wchar_t* out_buffer, int out_buffer_size, bool compactFormat, bool replaceWithMinusSign)
It returns the number of characters in the output string if replaceWithMinusSign is true, it replaces hyphen by the character 0x2212
static int ToString(double input, char* out_buffer, int out_buffer_size, bool compactFormat)
It returns the number of characters in the output string
static int ToString(double input, const wchar_t* format, wchar_t* output, int out_buffer_size)
It returns the number of characters in the output string
static int ToString(double input, wchar_t* out_buffer, int out_buffer_size, bool compactFormat, bool replaceWithMinusSign)
It returns the number of characters in the output string if replaceWithMinusSign is true, it replaces hyphen by the character 0x2212
static string& ToString(const MATRIX& input, string& output)
static string& ToString(const MATRIXC& input, string& output)
static string& ToString(const valarray<complex<double>>& input, string& output)
static string& ToString(const valarray<double >& input, string& output)
static string& ToString(const vector<complex<double>>& input, string& output)
static string& ToString(const vector<double >& input, string& output)
static string& WstringToString(const wchar_t* input, string& output)
static string& WstringToString(const wstring& input, string& output)
static string& WstringToString2(const wchar_t* input, string& output)
static unsigned __int16 Endianness(const unsigned __int16& input)
static unsigned __int32 Endianness(const unsigned __int32& input)
static unsigned __int64 Endianness(const unsigned __int64& input)
static void CharInfoToColorText(const list<Sys::CharInfo >& input, list<Sys::ColorText >& output)
static void ClsidToString(REFCLSID clsid, wstring& output)
static void CompactStringToWstring(const char* input, wstring& output)
Output: input[0]+31, input[1]+31, input[2]+31, ... This function allows restoring text in english, spanish, german, italian and french
static void CppToHtml(const wchar_t* input_cppLine, wstring& output_html, bool indent, bool includeNeuralLabVariables)
static void CppToHtml(wstring& in_out, bool indent, bool includeNeuralLabVariables)
static void FromXml(wstring& in_out)
static void GuidToString(REFGUID guid, wstring& output)
static void HtmlToText(wstring& in_out)
static void QuotedCppToHtml(const wchar_t* input_sqlLine, const wchar_t* cssStyle, wstring& output_html)
static void QuotedSqlToHtml(const wchar_t* input_sqlLine, const wchar_t* cssStyle, wstring& output_html)
static void RgbToHSLColor(const COLORREF input, Sys::HSLColor& output)
It converts a RGB color to a HSL space color R[0 255], G[0 255], B[0 255] H[0 360], S[0 1], L[0 1]
static void SqlTimeToSysTime(const Sys::SqlTime& input, Sys::Time& output)
static void SqlToHtml(const wchar_t* input_sqlLine, wstring& output_html, bool indent)
static void SqlToHtml(wstring& in_out, bool indent)
static void StringToWstring(const Sys::Buffer& input, wstring& output)
static void StringToWstring(const char* input, size_t input_len, wstring& output)
static void SysTimeToSqlTime(const Sys::Time& input, Sys::SqlTime& output)
static void ToHtml(const wchar_t* input, wstring& output)
static void ToSet(const wchar_t* input, wchar_t separator, set<wstring >& output)
static void ToString(int input, wchar_t* out_buffer, int out_buffer_size, bool replaceWithMinusSign)
static void ToStringCommaSeparated(int input, wchar_t* out_buffer, int out_buffer_size)
static void ToStringUsingCurrencyFormat(double input, wchar_t* out_buffer, int out_buffer_size)
static void ToVectorOfStrings(const char* input, vector<string >& output)
Given an input string with line breaks, it returns a vector with the text of each line
static void ToVectorOfStrings(const string& input, vector<string >& output)
Given an input string with line breaks, it returns a vector with the text of each line
static void ToVectorOfStrings(const wchar_t* input, vector<wstring >& output)
Given an input string with line breaks, it returns a vector with the text of each line
static void ToVectorOfStrings(const wchar_t* input, wchar_t separator, vector<wstring >& output)
Given an input string with separators, it returns a vector with the text between the separtors
static void ToVectorOfStrings(const wstring& input, vector<wstring >& output)
Given an input string with line breaks, it returns a vector with the text of each line
static void ToVectorOfStrings(const wstring& input, wchar_t separator, vector<wstring >& output)
Given an input string with separators, it returns a vector with the text between the separtors
static void ToXml(const wchar_t* input, wstring& output)
static void ToXml(const wstring& input, wstring& output)
static void ToXmlName(const wchar_t* input, wstring& output)
static void ToXmlName(const wstring& input, wstring& output)
static void WstringToString(const wchar_t* input, Sys::Buffer& output)
static void WstringToString(const wstring& input, Sys::Buffer& output)
static void time_tToFiletime(time_t input, FILETIME& filetime)
static wchar_t CompactStringToWstring(const char input)
It returns input+31 This function allows restoring text in english, spanish, german, italian and french
static wstring ToString(__int64 input)
static wstring ToString(double input)
static wstring ToString(double input, const wchar_t* format)
static wstring ToString(int input)
static wstring ToString(unsigned int input)
static wstring ToStringCommaSeparated(int input)
static wstring ToStringUsingCurrencyFormat(double input)
static wstring& DateToString(const Sys::Time& input, const wchar_t* format, wstring& output)
format day: d, dd, ddd or dddd format month: M, MM, MMM or MMMM format year: y, yy, yyy or yyyy format: L"ddd',' MMM dd yyyy"
static wstring& StringToWstring(const char* input, wstring& output)
static wstring& StringToWstring(const string& input, wstring& output)
static wstring& StringToWstring2(const char* input, wstring& output)
static wstring& TimeToString(const Sys::Time& input, const wchar_t* format, wstring& output)
format: L"hh':'mm':'ss tt"
static wstring& ToString(const MATRIX& input, wstring& output)
static wstring& ToString(const MATRIXC& input, wstring& output)
static wstring& ToString(const _variant_t& input, wstring& output)
static wstring& ToString(const valarray<complex<double>>& input, wstring& output)
static wstring& ToString(const valarray<double >& input, wstring& output)
static wstring& ToString(const vector<complex<double>>& input, wstring& output)
static wstring& ToString(const vector<double >& input, wstring& output)

Cursor
Cursor(void)
HCURSOR GetHCursor()
HCURSOR Load(HINSTANCE hinst, LPCTSTR lpszName, int width, int height, UINT fuLoad)
HCURSOR Load(HINSTANCE hinst, int cursor_id)
HCURSOR Load(HINSTANCE hinst, int cursor_id, int width, int height)
HCURSOR Load(LPCTSTR lpszName)
operator HCURSOR()
void CreateDragDrop(HINSTANCE hInstance)
void CreateHorzSplit(HINSTANCE hInstance)
void CreateVertSplit(HINSTANCE hInstance)
void Delete()
~ Cursor(void)

DLLibrary: It provides support for loading dynamic link libraries
DLLibrary(void)
FARPROC GetProcAddress(LPCSTR functionName)
HINSTANCE GetHinstance()
bool Load(const wchar_t* dllName)
bool Load(const wstring& dllName)
virtual ~ DLLibrary(void)
void Free(void)

DebugFile: A safe-thread file for debugging
DebugFile()
bool Create(const wchar_t* filename)
bool IsOpen()
bool Write(const wchar_t* format, . . .)
i.e. file.Write(L"Value=%d, Cost=%f\r\n", 5, 10.2);
void Close()
~ DebugFile()

DeltaCoder
static void Decode(string& in_out)
static void Decode(unsigned char* buffer, size_t length)
static void Encode(string& in_out)
static void Encode(unsigned char* buffer, size_t length)
~ DeltaCoder()

DriveInformation
DriveInformation()
bool Load(Sys::File& file)
bool Save(Sys::File& file)
~ DriveInformation()

EMail: It stores an email
EMail()
~ EMail()

Encrypter
Encrypter(void)
bool DecodeFile(const wchar_t* inputFilename, const wchar_t* outputFilename, const unsigned char* keyValue)
keyValue must be a null terminated string
bool EncodeFile(const wchar_t* inputFilename, const wchar_t* outputFilename, const unsigned char* keyValue)
keyValue must be a null terminated string
virtual ~ Encrypter(void)
void Decode(const unsigned char* input, size_t input_len, wstring& output, const unsigned char* keyValue)
The length of the output will be input_len/2 keyValue must be a null terminated string
void Decode(unsigned char* in_out, size_t input_len, const unsigned char* keyValue)
keyValue must be a null terminated string
void Encode(const wchar_t* input, size_t input_len, string& output, const unsigned char* keyValue)
The length of the output will be twice the length of the input keyValue must be a null terminated string
void Encode(unsigned char* in_out, size_t input_len, const unsigned char* keyValue)
keyValue must be a null terminated string

Error: It stores error information
DWORD GetErrorCode() const
Error()
Error(const Sys::Error& init)
Sys::Error& operator =(const Sys::Error& init)
bool IsOK() const
bool Set(DWORD errorCode, const wchar_t* text)
NO_ERROR, ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND, ERROR_ACCESS_DENIED, ERROR_INVALID_FUNCTION ERROR_INVALID_HANDLE, ERROR_NOT_ENOUGH_MEMORY, ERROR_INVALID_DATA, ERROR_OUTOFMEMORY, ERROR_WRITE_PROTECT, ERROR_BAD_COMMAND, ERROR_BAD_LENGTH, ERROR_NOT_SUPPORTED, ERROR_INVALID_PARAMETER, ERROR_BUFFER_OVERFLOW, ERROR_INSUFFICIENT_BUFFER, ...
bool operator ==(bool init)const
operator bool () const
void Delete()
void Display(HWND hWnd, const wchar_t* caption)const
void GetInformation(wstring& out_errorInformation)const
~ Error()

File: It allows writing and reading files
File(void)
HANDLE Create(const wchar_t* filename, DWORD desiredAccess, DWORD shareMode, DWORD creationDisposition, DWORD flagsAndAttributes)
For reading: Create(filename, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN); For writting: Create(filename, GENERIC_WRITE, 0, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN); desiredAccess: GENERIC_READ, GENERIC_WRITE or GENERIC_READ | GENERIC_WRITE shareMode: 0 (no sharing), FILE_SHARE_DELETE, FILE_SHARE_READ, FILE_SHARE_WRITE creationDisposition: CREATE_ALWAYS, CREATE_NEW, OPEN_ALWAYS, OPEN_EXISTING, TRUNCATE_EXISTING flagsAndAttributes: FILE_ATTRIBUTE_NORMAL, FILE_FLAG_DELETE_ON_CLOSE, FILE_FLAG_NO_BUFFERING, FILE_FLAG_RANDOM_ACCESS, FILE_FLAG_SEQUENTIAL_SCAN
HANDLE Create(const wchar_t* filename, DWORD desiredAccess, DWORD shareMode, LPSECURITY_ATTRIBUTES securityAttributes, DWORD creationDisposition, DWORD flagsAndAttributes, HANDLE templateFile)
HANDLE GetHandle()
bool CreateForReading(const wchar_t* filename)
bool CreateForReading(const wstring& filename)
bool CreateForWritting(const wchar_t* filename)
bool CreateForWritting(const wstring& filename)
bool Flush()
bool GetPointer(PLARGE_INTEGER out_currentPointer)
bool GetSize(LARGE_INTEGER& size)
bool IsOpen()
bool Read(Sys::Time& data)
bool Read(__int16& data)
bool Read(__int32& data)
bool Read(bool & data)
bool Read(char& data)
bool Read(double& data)
bool Read(float& data)
bool Read(unsigned __int16& data)
bool Read(unsigned __int32& data)
bool Read(unsigned char& data)
bool Read(wstring& data)
bool ReadBuffer(void* buffer, size_t bufferSizeInBytes)
bool ReadWchar(wchar_t& data)
bool SetEnd()
bool SetPointer(LARGE_INTEGER distanceToMove, PLARGE_INTEGER out_newFilePointer, DWORD moveMethod)
It moves the file pointer of the specified file  Google Microsoft
bool Write(__int16 data)
bool Write(__int32 data)
bool Write(bool data)
bool Write(char data)
bool Write(const Sys::Time& data)
bool Write(const wstring& data)
bool Write(double data)
bool Write(float data)
bool Write(unsigned __int16 data)
bool Write(unsigned __int32 data)
bool Write(unsigned char data)
bool WriteBuffer(const void* in_buffer, size_t bufferSizeInBytes)
bool WriteText(const char* source)
bool WriteText(const string& source)
bool WriteText(const wchar_t* source)
bool WriteText(const wstring& source)
bool WriteWchar(wchar_t data)
int Read(void* out_buffer, int bufferSizeInBytes)
returns the actual number of bytes that were read, or -1 if error
int Receive(char* out_buffer, int bufferSizeInBytes)
returns the actual number of bytes that were received, or -1 if error
int Send(const char* in_buffer, int bufferSizeInBytes)
returns the actual number of bytes that were sent, or -1 if error
int Write(const void* in_buffer, int bufferSizeInBytes)
returns the actual number of bytes that were written, or -1 if error
size_t GetSizeInBytes()
static bool SetFileTime(const wchar_t* filename, FILETIME& creation, FILETIME& access, FILETIME& write)
void Close()
void GetTime(FILETIME& creation, FILETIME& access, FILETIME& write)
void SetTime(FILETIME& creation, FILETIME& access, FILETIME& write)
~ File(void)

FileAssistant: It provides a set of helper functions to manipulate files
static bool BinaryLoad(const wchar_t* filename, string& output)
static bool BinaryLoad(const wstring& filename, string& output)
static bool BinaryMatrixLoad(const wchar_t* filename, MATRIX& output)
static bool BinaryMatrixSave(const wchar_t* filename, const MATRIX& input)
static bool BinarySave(const wchar_t* filename, const string& input)
static bool BinarySave(const wstring& filename, const string& input)
static bool BinaryVectorLoad(const wchar_t* filename, valarray<double >& output)
static bool BinaryVectorSave(const wchar_t* filename, const valarray<double >& input)
static bool CompressFile(HINSTANCE hInstance, const wchar_t* filename, wstring& out_filename)
It requires 7z.exe or 7za.exe installed wstring outFilename; Sys::File::Assistant::CompressFile(NULL, L"C:\\Users\\John\\sales.csv", outFilename); outFilename will be "C:\\Users\\john\\sales.csv.zip"
static bool CopyFile(const wchar_t* source_filename, const wchar_t* destination_filename)
Do no add \\?\ before the filename
static bool CopyFile(const wstring& source_filename, const wstring& destination_filename)
Do no add \\?\ before the filename
static bool CopyFileIOCP(const wchar_t* source_filename, const wchar_t* destination_filename)
static bool CreateEmptyZipFile(const wchar_t* filename)
static bool CreateEmptyZipFile(const wstring& filename)
static bool CreateFileFromResource(HINSTANCE hInstance, int resource_id, const wchar_t* destinationFileName)
It creates a file using the content in a BIN Resource
static bool CreateFileFromResource(HINSTANCE hInstance, int resource_id, const wstring& destinationFileName)
It creates a file using the content in a BIN Resource
static bool CsvIsComplex(const wchar_t* filename)
Returns true when the data in the CSV file is complex
static bool CsvIsComplex(const wstring& filename)
Returns true when the data in the CSV file is complex
static bool CsvLoad(const wchar_t* filename, MATRIX& output)
static bool CsvLoad(const wchar_t* filename, MATRIXC& output)
static bool CsvLoad(const wchar_t* filename, valarray<complex<double>>& output)
static bool CsvLoad(const wchar_t* filename, valarray<double >& output)
static bool CsvLoad(const wstring& filename, MATRIX& output)
static bool CsvLoad(const wstring& filename, MATRIXC& output)
static bool CsvLoad(const wstring& filename, valarray<complex<double>>& output)
static bool CsvLoad(const wstring& filename, valarray<double >& output)
static bool CsvSave(const wchar_t* filename, const MATRIX& input)
static bool CsvSave(const wchar_t* filename, const MATRIX& input, const char* format)
static bool CsvSave(const wchar_t* filename, const MATRIXC& input)
static bool CsvSave(const wchar_t* filename, const valarray<double >& input, bool isRow)
static bool CsvSave(const wchar_t* filename, valarray<complex<double>>& input, bool isRow)
static bool CsvSave(const wstring& filename, const MATRIX& input)
static bool CsvSave(const wstring& filename, const MATRIX& input, const char* format)
static bool CsvSave(const wstring& filename, const MATRIXC& input)
static bool CsvSave(const wstring& filename, const valarray<double >& input, bool isRow)
static bool CsvSave(const wstring& filename, valarray<complex<double>>& input, bool isRow)
static bool DeleteFile(const wchar_t* filename)
Do no add \\?\ before the filename
static bool DeleteFile(const wstring& filename)
Do no add \\?\ before the filename
static bool DeleteFolderFiles(const wchar_t* folder)
It deletes all the files in a folder
static bool DoesDirectoryExist(const wchar_t* filename)
It returns true, if the directory exists. To create a directory use Sys::FileDirectory::CreateFolder
static bool DoesDirectoryExist(const wstring& filename)
It returns true, if the directory exists. To create a directory use Sys::FileDirectory::CreateFolder
static bool DoesFileExist(const wchar_t* filename)
static bool DoesFileExist(const wstring& filename)
static bool FindFilePath(HINSTANCE hInstance, const wchar_t* foldername, const wchar_t* filename, const wchar_t* fixed_location, wstring& out_path)
It returns the path of the specified file, if it exists (hInstance can be NULL). The routine tries: 1. At the same folder as the executable 2. At the "foldername" folder in the executable 3. At the Program Files\"foldername" 4. At a fixed location wstring path; FindFilePath(hInstance, L"bin", L"7z.exe", L"C:\\7z\\", path); wstring path; FindFilePath(hInstance, nullptr, L"7z.exe", L"C:\\7z\\", path);
static bool Load(const wchar_t* filename, MATRIX& output)
static bool Load(const wchar_t* filename, MATRIXC& output)
static bool Load(const wchar_t* filename, valarray<complex<double>>& output)
static bool Load(const wchar_t* filename, valarray<double >& output)
static bool Load(const wchar_t* filename, vector<unsigned char >& output)
static bool Load(const wchar_t* filename, wstring& output)
static bool Load(const wstring& filename, MATRIX& output)
static bool Load(const wstring& filename, MATRIXC& output)
static bool Load(const wstring& filename, valarray<complex<double>>& output)
static bool Load(const wstring& filename, valarray<double >& output)
static bool Load(const wstring& filename, wstring& output)
static bool Save(const wchar_t* filename, const MATRIX& input)
static bool Save(const wchar_t* filename, const MATRIXC& input)
static bool Save(const wchar_t* filename, const valarray<complex<double>>& input)
static bool Save(const wchar_t* filename, const valarray<double >& input)
static bool Save(const wchar_t* filename, const wstring& input)
static bool Save(const wstring& filename, const MATRIX& input)
static bool Save(const wstring& filename, const MATRIXC& input)
static bool Save(const wstring& filename, const valarray<double >& input)
static bool Save(const wstring& filename, const wstring& input)
static bool Save(const wstring& filename, valarray<complex<double>>& input)
static bool TextLinesLoad(const wchar_t* filename, vector<string >& output)
static bool TextLinesLoad(const wchar_t* filename, vector<wstring >& output)
static bool TextLinesLoadW(const wchar_t* filename, vector<wstring >& output)
static bool TextLoad(const wchar_t* filename, string& output)
static bool TextLoad(const wchar_t* filename, wstring& output)
static bool TextLoad(const wstring& filename, string& output)
static bool TextLoad(const wstring& filename, wstring& output)
static bool TextSave(const wchar_t* filename, const char* input)
static bool TextSave(const wchar_t* filename, const string& input)
static bool TextSave(const wchar_t* filename, const wstring& input, bool writeOrderByte)
static bool TextSave(const wstring& filename, const char* input)
static bool TextSave(const wstring& filename, const string& input)
static bool TextSave(const wstring& filename, const wstring& input, bool writeOrderByte)
static bool TextUtf8Load(const wchar_t* filename, wstring& output)
static bool TextUtf8Save(const wchar_t* filename, const wchar_t* input, bool writeBOM)
static bool UncompressFile(HINSTANCE hInstance, const wchar_t* filename, wstring& out_filename)
It requires 7z.exe or 7za.exe installed wstring outFilename; Sys::File::Assistant::UncompressFile(NULL, L"C:\\Users\\John\\sales.csv.zip", outFilename); Sys::File::Assistant::UncompressFile(NULL, L"C:\\Users\\John\\sales.csv.gz", outFilename); outFilename will be "C:\\Users\\John\\sales.csv"
static bool ZipFile(const wchar_t* inputFileName, const wchar_t* outputFileName)
static bool ZipFile(const wstring& inputFileName, const wstring& outputFileName)
static bool ZipFolder(const wchar_t* inputFolderName, const wchar_t* outputFileName)
static bool ZipFolder(const wstring& inputFolderName, const wstring& outputFileName)
static int CompareFiles(const wchar_t* filenameA, const wchar_t* filenameB)
It returns 1, if files are equal It returns 0, if files are different It returns -1, if error
static int CompareFilesIOCP(const wchar_t* filenameA, const wchar_t* filenameB)
static int HasUtf8Bom(const wchar_t* filename)
It returns 1 if the file is UTF-8. It returns 0 if the file is not UTF-8. It returns -1 if error.
static int HasUtf8Bom(const wstring& filename)
static int IsTextFileUnicode(const wchar_t* filename)
It returns 1 if the file is UNICODE It returns 0 if the file is not UNICODE. It returns -1 if error.
static int IsTextFileUnicode(const wstring& filename)
static int TextAutoLoad(const wchar_t* filename, wstring& output)
It loads: a UNICODE, UTF-8 or ANSI file. It returns: TEXT_ENCODING_UNICODE TEXT_ENCODING_ANSI TEXT_ENCODING_UTF8 -1 if error
static size_t GetFileSize(const wchar_t* filename)
static size_t GetFileSize(const wstring& filename)

FileDirectory: It allows listing the contents of a folder
static bool CopyFolderStructure(const wchar_t* sourcePath, const wchar_t* destinationPath)
static bool CreateFolder(const wchar_t* pathName)
It create a directory (folder)  Google Microsoft
static bool DeleteFolder(const wchar_t* folder)
It deletes an empty or non-empty folder
static bool IsDirectory(_tfinddata_t& fd)
static bool IsDriveAvailable(wchar_t drive)
static bool WildcardMatch(wchar_t* pattern, wchar_t* input)
static int GetFileList(const wchar_t* path, Sys::IListFileDirectory* ilfd)
vector<_tfinddata_t> filelist; Sys::FileDirectory::GetFileList(L"C:\\*.txt", filelist); use the macros ISFOLDER(x), ISFILE(x) and EXCLUDE_FILE(x)
static int GetFileList(const wchar_t* path, vector<_tfinddata_t >& out_filelist)
vector<_tfinddata_t> filelist; Sys::FileDirectory::GetFileList(L"C:\\*.txt", filelist); use the macros ISFOLDER(x), ISFILE(x) and EXCLUDE_FILE(x)
static int GetFileListRecursive(const wchar_t* path, const wchar_t* filter, Sys::IListFileDirRecursive* ilfd)
path: L"C:\\Users\\John" filter: L"*.txt" fileList vector it returns the number of files
static int GetFileListRecursive(const wchar_t* path, const wchar_t* filter, vector<Sys::FileInfo >& fileList)
path: L"C:\\Users\\John" filter: L"*.txt" fileList vector it returns the number of files
static void GetDrivesInformation(vector<Sys::DriveInformation >& output)

FileReader: It provides support to read a file without loading the full file in memory
bool IsOpen()
The file is automatically closed, when the end of file has been reached
size_t GetSizeInBytes()
void Close()
~ FileReader(void)

FileReaderAscii: It provides support to read an ASCII file without loading the full file in memory It provides support to read a binary file without loading the full file in memory
FileReaderAscii(void)
bool Advance()
It avances the position by one
bool MoveAfter(const char thisCharacter)
It avances the position until it finds the specified character
bool MoveAfter(const char* thisWord)
It avances the position until it finds the specified word
bool Open(const wchar_t* filename)
bool Open(const wstring& filename)
bool Peek(char& out_character)
It returns the next character in the file without advancing the position in the file
bool Peek(unsigned char& out_character)
It returns the next character in the file without advancing the position in the file
bool Read(char& out_character)
It returns the next character in the file, and advances the position of the file
bool Read(unsigned char& out_character)
It returns the next character in the file, and advances the position of the file
bool Read(void* data, size_t numBytes)
It returns the a block of data from the file, and advances the position of the file
bool ReadBinary(__int16& out_value)
It returns the next __int16 value in the file, and advances the position of the file
bool ReadBinary(__int32& out_value)
It returns the next __int32 value in the file, and advances the position of the file
bool ReadBinary(float& out_value)
It returns the next float value in the file, and advances the position of the file
bool ReadBinary(unsigned __int16& out_value)
It returns the next unsigned __int16 value in the file, and advances the position of the file
bool ReadBinary(unsigned __int32& out_value)
It returns the next unsigned __int32 value in the file, and advances the position of the file
bool ReadBinary(wstring& out_value)
It returns the next wstring value in the file, and advances the position of the file
bool ResetPosition()
double ReadDouble(int& out_status)
It returns a double value and moves the position after the number If the end of the file has been reached, out_status is -1 if an error occurs, out_status is 1 otherwise out_status is 0
int AdvanceLine()
It returns the number of characters moved It returns -1 when the end of file has been reached
int GetLine(string& output)
It returns the number of characters read including the nullptr terminator It returns -1 when the end of file has been reached
int GetLine(unsigned char* out_buffer, int bufferLength)
It returns the number of characters read including the nullptr terminator It returns -1 when the end of file has been reached It returns -2 when the buffer is not large enough
int ReadNumber(int& out_status)
It returns an integer value and moves the position after the number If the end of the file has been reached, out_status is -1 if an error occurs, out_status is 1 otherwise out_status is 0
size_t GetCharCount()
It returns the number of characters in the file
void GetLines(Sys::ITextLine& textLine)
It returns the text lines in the file using the interface Sys::ITextLine
void GetLinesW(Sys::ITextLineW& textLine)
It returns the text lines in the file using the interface Sys::ITextLine
~ FileReaderAscii(void)

FileReaderW: It provides support to read a wchar_t value from a file without loading the full file in memory
FileReaderW(void)
bool Advance()
It advances the position by one
bool MoveAfter(const wchar_t thisCharacter)
It advances the position until it finds the specified character
bool MoveAfter(const wchar_t* thisWord)
It advances the position until it finds the specified word
bool Open(const wchar_t* filename)
bool Open(const wstring& filename)
bool Peek(wchar_t& out_character)
It returns the next character in the file without advancing the position in the file
bool Read(wchar_t& out_character)
It returns the next character in the file and advances the position in the file
bool ResetPosition()
double ReadDouble(int& out_status)
It returns a double value and moves the position after the number If the end of the file has been reached, out_status is -1 if an error occurs, out_status is 1 otherwise out_status is 0
int GetLine(wchar_t* out_buffer, int bufferLength)
It returns the number of characters read including the nullptr terminator It returns -1 when the end of file has been reached It returns -2 when the buffer is not large enough
int GetLine(wstring& output)
It returns the number of characters read including the nullptr terminator It returns -1 when the end of file has been reached
int ReadNumber(int& out_status)
It returns the number of characters read It returns -1 when the end of file has been reached It returns -2 when the buffer is not large enough
size_t GetCharCount()
It returns the number of characters in the file
void GetLines(Sys::ITextLineW& textLine)
It returns the text lines in the file using the interface Sys::ITextLine
~ FileReaderW(void)

FileWriter: It provides high performance support to write a file
FileWriter()
bool IsOpen()
bool Open(const wchar_t* filename)
bool Write(void* data, size_t numBytes)
bool WriteBinary(__int16 value)
bool WriteBinary(__int32 value)
bool WriteBinary(__int8 value)
bool WriteBinary(const wstring& value)
bool WriteBinary(float value)
bool WriteBinary(unsigned __int16 value)
bool WriteBinary(unsigned __int32 value)
bool WriteBinary(unsigned __int8 value)
bool WriteBinaryReverse(float value)
bool WriteDecimal(double value, int numDecimals)
bool WriteText(const char* text)
bool WriteText(const char* text, size_t numCharacters)
bool WriteText(const string& text)
bool WriteText(const wchar_t* text)
bool WriteText(const wchar_t* text, size_t numCharacters)
bool WriteText(const wstring& text)
void Close()
~ FileWriter()

FtpConnection: WinINet (Windows Internet)
FtpConnection()
HINTERNET OpenFILE(const wchar_t* fileName, DWORD access, DWORD flags, DWORD_PTR context)
It initiates access to a remote file on an FTP server for reading or writing. flags: FTP_TRANSFER_TYPE_ASCII, FTP_TRANSFER_TYPE_BINARY, FTP_TRANSFER_TYPE_UNKNOWN access: GENERIC_READ or GENERIC_WRITE.  Google Microsoft
bool CreateDir(const wchar_t* directory_name)
It creates a new directory on the FTP server.  Google Microsoft
bool DeleteFILE(const wchar_t* filename)
It deletes a file stored on the FTP server. filename can be either partially or fully qualified file names relative to the current directory.  Google Microsoft
bool FindFirstFILE(const wchar_t* searchFile, WIN32_FIND_DATA& out_Win32FindData, DWORD flags, DWORD_PTR context)
It searches the specified directory of the given FTP session. flags: INTERNET_FLAG_HYPERLINK, INTERNET_FLAG_NEED_FILE, INTERNET_FLAG_NO_CACHE_WRITE, INTERNET_FLAG_RELOAD, INTERNET_FLAG_RESYNCHRONIZE  Google Microsoft
bool FindNextFILE(WIN32_FIND_DATA& out_Win32FindData)
It continues a file search started as a result of a previous call to FtpFindFirstFile.  Google Microsoft
bool GetCurrentDir(wchar_t* out_currentDirectory, DWORD& in_out_size_currentDirectory)
It deletes a directory from the FTP server. out_currentDirectory is pointer to a variable that specifies the length of the buffer in wchar_t s. The buffer length must include room for a terminating null character. Using a length of MAX_PATH is sufficient for all paths. When the function returns, the in_out_size_currentDirectory variable receives the number of characters copied into the buffer.  Google Microsoft
bool GetFILE(const wchar_t* remoteFile, const wchar_t* newFile, bool failIfExists, DWORD flagsAndAttributes, DWORD flags, DWORD_PTR context)
It retrieves a file from the FTP server and stores it under the specified file name, creating a new local file in the process. flags: FTP_TRANSFER_TYPE_ASCII, FTP_TRANSFER_TYPE_BINARY, FTP_TRANSFER_TYPE_UNKNOWN  Google Microsoft
bool Open(Sys::InternetConnection& internetConnection, const wchar_t* serverName, INTERNET_PORT serverPort, const wchar_t* username, const wchar_t* password)
bool Open(Sys::InternetConnection& internetConnection, const wchar_t* serverName, INTERNET_PORT serverPort, const wchar_t* username, const wchar_t* password, DWORD flags, DWORD_PTR context)
bool PutFILE(const wchar_t* localFile, const wchar_t* newRemoteFile, DWORD flags, DWORD_PTR context)
It stores a file on the FTP server. flags: FTP_TRANSFER_TYPE_ASCII, FTP_TRANSFER_TYPE_BINARY, FTP_TRANSFER_TYPE_UNKNOWN  Google Microsoft
bool RemoveDir(const wchar_t* directory_name)
It deletes a directory from the FTP server.  Google Microsoft
bool RenameFILE(const wchar_t* existing_filename, const wchar_t* new_filename)
It change the name of a file stored on the FTP server. filename can be either partially or fully qualified file names relative to the current directory.  Google Microsoft
bool SetCurrentDir(const wchar_t* directory_name)
It changes to a different working directory on the FTP server..  Google Microsoft
void Close()
~ FtpConnection()

GammaCorrection: It corrects photometric distortions in images Example: GammaCorrection gc; unsigned char = gc.Transform[inputValue];
GammaCorrection()
double GetGamma()
void SetGamma(double gamma)
~ GammaCorrection()
double Gamma

GlobalMemory
GlobalMemory()
GlobalMemory(HGLOBAL hGlobal)
HGLOBAL GetHandle()
It returns the handle the holds the global memory
LPVOID Lock()
It locks a global memory object and returns a pointer to the first byte of the object's memory block  Google Microsoft
bool Allocate(UINT uFlags, SIZE_T dwBytes)
It allocates the specified number of bytes from the heap  Google Microsoft
bool IsValid()
It returns true if the memory handle is valid
bool ReAllocate(SIZE_T dwBytes, UINT uFlags)
It changes the size or attributes of a specified global memory object. The size can increase or decrease  Google Microsoft
int Unlock()
It decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE. This function has no effect on memory objects allocated with GMEM_FIXED  Google Microsoft
size_t GetNumBytes()
It return the number of bytes in memory
void DoNotFree()
It prevents from freeing the global memory when the object gets destroyed
void FreeMemory()
It frees the specified global memory object and invalidates its handle.  Google Microsoft
~ GlobalMemory()

Graphics: It is a Device Dependent Bitmap that can be dynamically created graphics.Create(512, 512); GRAPHICS_SETPIXEL(graphics, x, y, RGBX(red, green, blue()); Set graphics.bits graphics.CreateBitmap(); After setting the bits, you must call CreateBitmap();
COLORREF GetPixel(int x, int y)const
Remember that Red and Blue are exchanged, thus you must used GetRValueX, GetGValueX and GetBValueX instead of GetRValue, GetGValue and GetBValue
Graphics()
Graphics(const Sys::Graphics& init)
Sys::Graphics& operator =(const Sys::Graphics& init)
bool CopyToClipboard(HWND hWnd)const
bool Create(int width, int height)
bool Polygon(vector<Sys::Point >& vertices, COLORREF color, int positionX, int positionY)
bool SaveBMP(const wchar_t* filename)
int GetHeight() const
int GetWidth() const
void BresenhamLine(int x1, int y1, int x2, int y2, COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
void CreateBitmap()
void Delete()
void GetInfo(int& width, int& height, HDC& hdc)const
void GetPixel(int x, int y, unsigned __int8& out_red, unsigned __int8& _out_green, unsigned __int8& _out_blue)const
void Line(__int16 x1, __int16 y1, __int16 x2, __int16 y2, COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
void LineUnclipped(__int16 x1, __int16 y1, __int16 x2, __int16 y2, COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
void SetAllBits(__int32 value)
void SetAllPixels(COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
void SetPixel(int x, int y, COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
void SetPixel(int x, int y, unsigned __int8& red, unsigned __int8& green, unsigned __int8& blue)
~ Graphics()

GraphicsX: It is a Device Dependent Bitmap that can be dynamically created graphics.Create(512, 512); GRAPHICS_SETPIXEL(graphics, x, y, RGBX(red, green, blue()); Set graphics.bits graphics.CreateBitmap(); After setting the bits, you must call CreateBitmap();
GraphicsX()
void DrawHorizontalLine(double x1, double x2, int y, COLORREF color)
void DrawHorizontalLine(double x1, double x2, int y, COLORREF color, unsigned __int8 red, unsigned __int8 green, unsigned __int8 blue)
void DrawHorizontalLine(double& start_x, double& end_x, int& y, unsigned char& start_red, unsigned char& start_green, unsigned char& start_blue, unsigned char& end_red, unsigned char& end_green, unsigned char& end_blue)
void DrawVerticalLine(double y1, double y2, int x, COLORREF color, unsigned __int8 red, unsigned __int8 green, unsigned __int8 blue)
void SetPixel(int x, int y, unsigned __int8& red, unsigned __int8& green, unsigned __int8& blue, unsigned __int8& alpha)
void Triangle(int x1, int y1, COLORREF color1, int x2, int y2, COLORREF color2, int x3, int y3, COLORREF color3)
Gouraud Triangle. See TriangleFillers.htm
void Triangle(int x1, int y1, int x2, int y2, int x3, int y3, COLORREF color, bool aliasing)
void WuLineCS(__int16 x1, __int16 y1, __int16 x2, __int16 y2, COLORREF color)
Use RGBX(red, green, blue) to set the color (line with Cohen–Sutherland Clipping)
void WuLineUnclipped(__int16 x1, __int16 y1, __int16 x2, __int16 y2, COLORREF color)
Remember that Red and Blue are exchanged, thus you must used RGBX(red, green, blue) instead of RGB(red, green, blue)
~ GraphicsX()

Grid: It is a 3D Grid to be drawn in a Sys::Graphics object
Grid()
bool Create(double minX, double maxX, int countX, double minY, double maxY, int countY)
bool Create(int countX, int countY)
bool CreateRadial(double minAngle, double maxAngle, double minR, double maxR, int countAngle, int countR)
bool CreateRadial(int countAngle, int countR)
int GetCountX() const
bool** drawPoint; By default all points in the grid are drawn, use this variable to prevent some points from drawing
int GetCountY() const
int GetObject3DCount()
void Delete()
~ Grid()

Gzip
static bool Deflate(const string& input, string& compressed)
static bool Inflate(const string& compressed, string& output)
virtual ~ Gzip()

HSLColor
HSLColor()
double GetHue() const
double GetLightness() const
double GetSaturation() const
void SetHue(double hue)
void SetLightness(double lightness)
void SetSaturation(double saturation)
~ HSLColor()
double Hue
double Saturation
double Lightness

HhcFile: It provides support for creating Microsoft HTML Help Workshop files (content file *.hhc)
HhcFile()
bool Create(const wchar_t* filename, bool useFolderImage)
bool Create(const wstring& filename, bool useFolderImage)
void AddFolder(const wchar_t* name)
AddFolder > AddFolderItem >AddFolderItem... > CloseFolder
void AddFolder(const wchar_t* name, int imageIndex)
AddFolder > AddFolderItem >AddFolderItem... > CloseFolder imageIndex: 0, 1, 2, 3, ..., 42
void AddFolderItem(const wchar_t* name, const wchar_t* filename)
AddFolder > AddFolderItem >AddFolderItem... > CloseFolder
void AddFolderItem(const wchar_t* name, const wchar_t* filename, int imageIndex)
AddFolder > AddFolderItem >AddFolderItem... > CloseFolder imageIndex: 0, 1, 2, 3, ..., 42
void CloseFolder()
~ HhcFile()

HhkFile: It provides support for creating Microsoft HTML Help Workshop files (index file *.hhk)
HhkFile()
bool IsValidKeyword(const wstring& input)
void AppendKeywordObject(const wstring& docText, wstring& whtml)
~ HhkFile()

HhpFile: It provides support for creating Microsoft HTML Help Workshop files (*.hhp)
HhpFile()
bool Create(const wchar_t* path, const wchar_t* productName, const wchar_t* title, bool includeIndexFile)
bool Create(const wstring& path, const wstring& productName, const wstring& title, bool includeIndexFile)
void AddItem(const wchar_t* filename)
void AddItem(const wstring& filename)
~ HhpFile()

Http
Http()
bool CreateHead(const char* in_buffer, const size_t bufferSize)
bool DoKeepConnectionAlive()
bool GetHeaderValue(const wchar_t* in_name, wstring& out_value)
bool GetHeaderValue(const wstring& in_name, wstring& out_value)
bool GetUsernameAndPassword(string& out_username, string& out_password)
It extracts the username and password from Authorization:
bool GetUsernameAndPassword(wstring& out_username, wstring& out_password)
It extracts the username and password from Authorization:
bool IsUtf8()
int GetContentLength()
It returns the Content-Length value or -1 if not found
static const char* GetCodeDescrChar(int code)
code = 100, 101, 200, ...
static const wchar_t* GetCodeDescr(int code)
code = 100, 101, 200, ...
static const wchar_t* GetMimeContentType(const wchar_t* fileExtension)
static void GetDateHeader(char* buffer, int bufferSize)
It returns the Current Date in a Http Response
static void GetDateHeader(wchar_t* buffer, int bufferSize)
It returns the Current Date in a Http Response
virtual bool IsRequiredToReceiveBody() = 0
virtual bool LoadFile(const wchar_t* filename)= 0
It creates a HTTP Response or Request from a file so that it can sent using a socket
virtual void CreateFromHttpCode(int code, const wchar_t* caption)= 0
void Create(Sys::SoapEnvelope& soapEnvelope)
It creates a HTTP Response or Request from a Soap Envelope
void Create(Sys::Xml& xml)
It creates a HTTP Response or Request from XML
void Delete()
void GetBodyText(wstring& out_text)
void GetHeadHtml(bool includeDate, wstring& out_html)
void GetHeadText(wstring& out_text)
void GetText(wstring& out_text)
void GetTextToBeSent(wstring& out_text)
void RenderHeadText(wstring& out_text)const
void SetUsernameAndPassword(const wchar_t* username, const wchar_t* password)
It sets the username and password for Authorization:
void SetUsernameAndPassword(const wstring& username, const wstring& password)
It sets the username and password for Authorization:
~ Http()

HttpConnection: WinINet (Windows Internet)
HttpConnection()
bool Open(Sys::InternetConnection& internetConnection, const wchar_t* serverName, INTERNET_PORT serverPort, const wchar_t* username, const wchar_t* password)
bool Open(Sys::InternetConnection& internetConnection, const wchar_t* serverName, INTERNET_PORT serverPort, const wchar_t* username, const wchar_t* password, DWORD flags, DWORD_PTR context)
bool Read(LPVOID buffer, DWORD numberOfBytesToRead, DWORD& numberOfBytesRead)
bool RequestSetup(const wchar_t* verb, const wchar_t* objectName, const wchar_t* version, const wchar_t* referer, const wchar_t* * acceptTypes, DWORD flags, DWORD_PTR context)
bool SendRequest(const wchar_t* headers, DWORD headersLength, LPVOID data, DWORD dataLength)
It sends the specified request to the HTTP server  Google Microsoft
bool SetOption(DWORD option, LPVOID buffer, DWORD bufferLength)
Sets an Internet option  Google Microsoft
void Close()
~ HttpConnection()

HuffmanCoder
HuffmanCoder()
bool Decode(Sys::BoolArray& input, string& output)
bool Decode(const string& input, string& output)
bool Encode(const string& input, Sys::BoolArray& output)
bool Encode(const string& input, string& output)
~ HuffmanCoder()

HuffmanNode
HuffmanNode()
HuffmanNode(HuffmanNode* left, HuffmanNode* right)
HuffmanNode(unsigned int frequency)
HuffmanNode(unsigned int frequency, unsigned char symbol)
bool IsLeaf()
void CreateAndSave(const Sys::BoolArray& prefix, std::map<unsigned char, Sys::BoolArray >& code, Sys::BoolArray& saveData)
It creates the map with the Huffman codes and saves the tree with the Huffman codes to saveData
void Load(Sys::BoolArray& input, const unsigned char lastSymbol, bool & done)
void Navigate(const Sys::BoolArray& prefix, std::map<unsigned char, Sys::BoolArray >& code, unsigned char& out_lastSymbol)
void Save(Sys::BoolArray& saveData)
void Uncompressed(Sys::BoolArray& input, size_t& remainingBits, unsigned char& out_value)
~ HuffmanNode()

IButton
virtual bool IsChecked() = 0
virtual void SetChecked(bool checked)= 0
bool Checked

IChannel
virtual int Receive(char* out_buffer, int bufferSizeInBytes)= 0
Returns the actual number of bytes that were received, or -1 if error
virtual int Send(const char* in_buffer, int bufferSizeInBytes)= 0
Returns the actual number of bytes that were sent, or -1 if error

IColorMapDataProvider
virtual void GetDataRowZ(const int row, const int in_countX, const double* in_x, const double in_y, double* out_z)= 0

IDateTime
virtual Sys::Time GetSelectedDateTime() = 0
virtual bool GetCurrentSelection(int& month, int& day, int& year)= 0
virtual bool SetCurrentSelection(int month, int day, int year)= 0
virtual bool SetSelectedDateTime(Sys::Time& systime)= 0
Sys::Time SelectedDateTime

IDropDownList
virtual LPARAM GetItemData(int index)= 0
virtual bool DeleteItem(int index)= 0
virtual bool GetItemText(int index, wchar_t* buffer, int buffer_length)= 0
virtual bool GetItemText(int index, wstring& out_text)= 0
virtual bool GetSelectedData(LPARAM& out_data)= 0
virtual bool SetItemData(int index, const LPARAM data)= 0
virtual bool SetSelectedByData(LPARAM data)= 0
virtual bool SetSelectedIndex(int index)= 0
virtual int GetItemCount() = 0
virtual int GetSelectedIndex() = 0
virtual void AddItem(const wchar_t* text, LPARAM data)= 0
virtual void AddItem(const wstring& text, LPARAM data)= 0
virtual void DeleteAllItems() = 0
int SelectedIndex

IEnumerator: This interface is used to move data between classes
virtual void Enumerate(wchar_t* * data, int colCount, int rowIndex)= 0

IError
virtual void ReportError(bool error, wchar_t* description)= 0

IListBox
virtual bool IsItemSelected(int index)= 0
virtual bool SetSelection(int index, bool selected)= 0
If index is -1, it will affect all items

IListFileDirRecursive
virtual bool Enumerate(const wchar_t* path, _tfinddata_t& findData)= 0

IListFileDirectory
virtual bool Enumerate(_tfinddata_t& findData)= 0

IListView
virtual LRESULT AddItem(const wchar_t* text, LPARAM data)= 0
virtual LRESULT AddItem(const wstring& text, LPARAM data)= 0
virtual bool DeleteColumn(int index)= 0
virtual bool DeleteItem(int row)= 0
virtual bool GetColumnFormat(int index, int& format)= 0
virtual bool GetColumnText(int index, wchar_t* buffer, int buffer_length)= 0
virtual bool GetColumnText(int index, wstring& out_text)= 0
virtual bool GetColumnWidth(int index, int& width)= 0
virtual bool GetItemData(int row, LPARAM& out_data)= 0
virtual bool GetItemText(int row, int column, wstring& out_text)= 0
virtual bool GetSelectedData(LPARAM& out_data)= 0
virtual bool IsItemChecked(int row)= 0
virtual bool IsItemSelected(int row)= 0
virtual bool SetColumnFormat(int index, int format)= 0
virtual bool SetColumnText(int index, const wchar_t* text)= 0
virtual bool SetColumnText(int index, const wstring& text)= 0
virtual bool SetColumnWidth(int index, int width)= 0
virtual bool SetItemData(int row, const LPARAM data)= 0
virtual bool SetItemText(int row, int column, const wchar_t* text)= 0
virtual bool SetItemText(int row, int column, const wstring& text)= 0
virtual bool SetSelectedByData(LPARAM data)= 0
virtual bool SetSelectedIndex(int row)= 0
virtual bool SetSelection(int row, bool selected)= 0
Selects or un-select the specified item (Indexes start at 0. Use row =-1 to affect all rows)
virtual int GetColumnCount() = 0
virtual int GetItemCount() = 0
virtual int GetItemText(int row, int column, wchar_t* buffer, int buffer_length)= 0
It returns the number of characters
virtual int GetNextSelectedIndex(int row)= 0
The first time the function is called, row must -1. The next calls row must be set to the value returned on the previous function call. The function is called until it returns -1
virtual int GetSelectedCount() = 0
virtual int GetSelectedIndex() = 0
virtual void AddColumn(int format, int width, const wchar_t* text)= 0
format: LVCFMT_LEFT, LVCFMT_CENTER, LVCFMT_RIGHT
virtual void AddColumn(int format, int width, const wstring& text)= 0
format: LVCFMT_LEFT, LVCFMT_CENTER, LVCFMT_RIGHT
virtual void Delete() = 0
virtual void DeleteAllColumns() = 0
virtual void DeleteAllItems() = 0
virtual void SetItemChecked(int row, bool checked)= 0
int SelectedIndex

IObject
virtual bool IsEnabled() = 0
virtual bool IsVisible() = 0
virtual void SetEnabled(bool enabled)= 0
virtual void SetText(const wstring& text)= 0
virtual void SetVisible(bool visible)= 0
virtual wstring& GetText() = 0
wstring Text
bool Visible
bool Enabled

IReader
virtual bool Read(char& out_character)= 0
virtual bool Read(unsigned char& out_character)= 0
virtual bool Read(void* data, size_t numBytes)= 0
virtual bool ReadBinary(__int16& out_value)= 0
virtual bool ReadBinary(__int32& out_value)= 0
virtual bool ReadBinary(float& out_value)= 0
virtual bool ReadBinary(unsigned __int16& out_value)= 0
virtual bool ReadBinary(unsigned __int32& out_value)= 0
virtual bool ReadBinary(wstring& out_value)= 0

ISelect: This interface is used to simplify Web or desktop applications with SQL
virtual void SqlUpdate(bool toGui)= 0

ISelectBool: This interface is used to simplify Web or desktop applications with SQL
virtual bool & SqlGetBool() = 0

ISelectDouble: This interface is used to simplify Web or desktop applications with SQL
virtual double& SqlGetDouble() = 0

ISelectInt: This interface is used to simplify Web or desktop applications with SQL
virtual LPARAM& SqlGetInt() = 0

ISelectString: This interface is used to simplify Web or desktop applications with SQL
virtual wstring& SqlGetString() = 0

ISelectTime: This interface is used to simplify Web or desktop applications with SQL
virtual Sys::SqlTime& SqlGetTime() = 0
virtual Sys::Time& SqlGetSysTime() = 0

IStorer
virtual int Read(void* out_buffer, int bufferSizeInBytes)= 0
Returns the actual number of bytes that were read, or -1 if error
virtual int Write(const void* in_buffer, int bufferSizeInBytes)= 0
Returns the actual number of bytes that were written, or -1 if error

ITextLine
virtual void Line(const unsigned char* line_text, size_t text_length)= 0

ITextLineW
virtual void Line(const wchar_t* line_text, size_t text_length)= 0

ITextWriterA
virtual bool WriteText(const string& source)= 0

ITextWriterW
virtual bool WriteText(const wstring& source)= 0

ITextbox
virtual bool IsMultiline() = 0
virtual bool IsPassword() = 0
virtual bool IsReadOnly() = 0
virtual double GetDoubleValue() = 0
virtual int GetIntValue() = 0
virtual int GetMaxTextLength() = 0
virtual void HideBalloonTip() = 0
virtual void SetDoubleValue(double value)= 0
virtual void SetIntValue(int value)= 0
virtual void SetMaxTextLength(int maxTextLength)= 0
virtual void SetMultiline(bool isMultiline)= 0
virtual void SetPassword(bool isPassword)= 0
virtual void SetReadOnly(bool readOnly)= 0
virtual void ShowBalloonTip(const wchar_t* caption, const wchar_t* text, int icon)= 0
virtual void ShowBalloonTip(const wstring& caption, const wstring& text, int icon)= 0
double DoubleValue
int IntValue
bool Password
bool ReadOnly
int MaxTextLength
bool Multiline

IVisualStudio
virtual bool AddFileToProject(HWND hWnd, const wstring& projectName, const wstring& fileName)= 0
virtual bool GetActiveDocumentFileName(wstring& out_fileName)= 0
virtual bool GetFileText(HWND hWnd, const wchar_t* fileName, wstring& fileText)= 0
virtual bool SaveAll(HWND hWnd)= 0
virtual bool SetFileText(HWND hWnd, const wchar_t* fileName, const wchar_t* fileText)= 0
virtual bool SetProjectDebugInfo(HWND hWnd, const wchar_t* path, const wchar_t* activeProjectName)= 0

IWindow
virtual HWND GetHWND() = 0
virtual int MessageBox(const wchar_t* text, const wchar_t* caption, UINT type)= 0
virtual int MessageBox(const wstring& text, const wstring& caption, UINT type)= 0
virtual void EndDialog(int result)= 0

IWriter
virtual bool Write(void* data, size_t numBytes)= 0
virtual bool WriteBinary(__int16 value)= 0
virtual bool WriteBinary(__int32 value)= 0
virtual bool WriteBinary(__int8 value)= 0
virtual bool WriteBinary(const wstring& value)= 0
virtual bool WriteBinary(float value)= 0
virtual bool WriteBinary(unsigned __int16 value)= 0
virtual bool WriteBinary(unsigned __int32 value)= 0
virtual bool WriteBinary(unsigned __int8 value)= 0

Icon
HICON GetHIcon()
HICON Load(HINSTANCE hInstance, LPCTSTR name, int width, int height, UINT fuLoad)
It loads an icon fuLoad: LR_CREATEDIBSECTION, LR_DEFAULTCOLOR, LR_DEFAULTSIZE, LR_LOADFROMFILE, LR_LOADMAP3DCOLORS, LR_LOADTRANSPARENT, LR_MONOCHROME, LR_SHARED, LR_VGACOLOR  Google Microsoft
HICON Load(HINSTANCE hInstance, int icon_id, int width, int height)
HICON LoadApplicationIcon(HINSTANCE hInstance)
HICON LoadAsteriskIcon(HINSTANCE hInstance)
HICON LoadExclamationIcon(HINSTANCE hInstance)
HICON LoadHandIcon(HINSTANCE hInstance)
HICON LoadQuestionIcon(HINSTANCE hInstance)
HICON LoadWinLogoIcon(HINSTANCE hInstance)
Icon()
Icon(const Sys::Icon& init)
Sys::Icon& operator =(const Sys::Icon& init)
bool GetInformation(int& out_width, int& out_height, int& out_bitsPerPixel)
bool IsDefaultSize()
bool IsValid()
bool Load(HINSTANCE hInstance, int icon_id)
int GetHeight()
int GetWidth()
operator HICON()
void Delete()
~ Icon()

IconDir
IconDir()
void Delete()
~ IconDir()

IconDirEntry
IconDirEntry()
void Delete()
~ IconDirEntry()

ImageStream: #undef INTERFACE #define INTERFACE ImgStream
# ifndef CINTERFACE public : ImageStream()
static IStream* CreateAllocator(string* data)
static int ImageStream::GetEncoderClsid(const wchar_t* mimeType, CLSID* pClsid)
mimeType: image/bmp, image/gif, image/jpeg, image/png, image/tiff, image/wmf, image/emf, image/icon
virtual ~ ImageStream()

IndexGenerator: It generates the indexes for a triangle strip or a triangle list during tessellation
IndexGenerator()
static void ReverseIndex(size_t numIndex, unsigned __int32* inout)
static void ReverseIndex(size_t numIndex, unsigned long* inout)
void Reset()
void TriangleList(size_t numVertex, unsigned long* output)
It generates the sequence: 0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, ...
void TriangleList32(size_t numVertex, unsigned __int32* output)
It generates the sequence: 0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, ...
void TriangleStrip(size_t numVertex, unsigned long* output)
It generates the sequence: 0, 1, 3, 2 or 0, 1, 4, 2, 3 or 0, 1, 5, 2, 4, 3 or 0, 1, 6, 2, 5, 3, 4 or 0, 1, 7, 2, 6, 3, 5, 4 or ...
void TriangleStrip32(size_t numVertex, unsigned __int32* output)
It generates the sequence: 0, 1, 3, 2 or 0, 1, 4, 2, 3 or 0, 1, 5, 2, 4, 3 or 0, 1, 6, 2, 5, 3, 4 or 0, 1, 7, 2, 6, 3, 5, 4 or ...
~ IndexGenerator()

Information: It provides information about the system
static BOOL getSystemPowerStatus(SYSTEM_POWER_STATUS& sps)
static BOOL setCurrentDirectory(const wchar_t* newDirectory)
static BOOL setCurrentDirectory(const wstring& newDirectory)
static WORD getCacheLineSize()
static bool getCurrentProgramDirectory(wstring& output)
It returns the path of the current Program
static bool getCurrentProgramFileName(wstring& output)
It returns the path and name of the current Program
static bool getEnvironmentVariable(const wchar_t* variableName, wstring& result)
variableName: L"ALLUSERSPROFILE", L"COMPUTERNAME", L"HOMEDRIVE", L"HOMEPATH", L"ProgramFiles", L"TEMP", L"USERDOMAIN", L"USERNAME", L"USERPROFILE", L"windir", L"APPDATA"
static bool getEnvironmentVariable(wstring& variableName, wstring& result)
variableName: L"ALLUSERSPROFILE", L"COMPUTERNAME", L"HOMEDRIVE", L"HOMEPATH", L"ProgramFiles", L"TEMP", L"USERDOMAIN", L"USERNAME", L"USERPROFILE", L"windir", L"APPDATA"
static bool getProgramFileName(HMODULE hInstance, wstring& output)
It returns the path and name of an executable or a DLL
static const wchar_t* getCommandLine()
static const wchar_t* getLicense()
static int getCurrentDirectory(wstring& result)
static int getSystemDirectory(wstring& result)
static int getSystemWindowsDirectory(wstring& result)
static int getWindowsDirectory(wstring& result)
static void getSystemInfo(SYSTEM_INFO& si)
static void getSystemTimeAsFileTime(FILETIME& ft)

Install: It provides functions to install software. It changes the Windows Registry and the File System
Install(void)
bool ApplicationFolder(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool ApplicationShortcut(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool CanAccessRegistry()
bool CopyFileToApplicationFolder(Sys::Install::ProductInfo& pi, const wchar_t* sourceFile, const wchar_t* destinationFile)
bool DeleteFileFromApplicationFolder(Sys::Install::ProductInfo& pi, const wchar_t* destinationFile)
bool InstallSoftware(Sys::Install::ProductInfo& pi, Sys::IError& ierror)
bool InstallSoftware1(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool InstallSoftware2(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool InstallSoftware3(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool InstallSoftware4(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall, const wchar_t* fileNameIco_exe, int iIcon)
bool InstallSoftware5(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool InstallSoftware6(Sys::Install::ProductInfo& pi, Sys::IError& ierror, bool isInstall)
bool RemoveShortcut(const wchar_t* productName)
bool RemoveSoftware(Sys::Install::ProductInfo& pi, Sys::IError& ierror)
const wchar_t* GetCurrentDirectory_(void)
const wchar_t* GetDesktopPath(void)
const wchar_t* GetDestinationDirectory(const wchar_t* productName)
const wchar_t* GetMyDocumentsPath(void)
const wchar_t* GetProgramFilesPath(void)
const wchar_t* GetStartupMenuProgramsPath(void)
const wchar_t* GetWindowsFolder()
const wchar_t* RegistryReadString(HKEY hkey, LPCTSTR pszPathAndName, LPCTSTR pszValueName)
static bool CreateShortCut(const wchar_t* destinationFilename, const wchar_t* description, const wchar_t* shortcutLnkFilename, const wchar_t* workingDirectory, const wchar_t* filenameIco_exe, int iIcon)
static bool RegistrySetStringValue(HKEY hkey, PCTSTR pszValueName, PCTSTR pszString)
virtual ~ Install(void)
wchar_t* CopyDeleteFile(HINSTANCE hInst, int resource_id, const wchar_t* destinationFile, Sys::IError& ierror, bool isInstall)
wchar_t* CopyFileTo(HINSTANCE hInst, int resource_id, const wchar_t* destinationFile)
wchar_t* CopyFileToApplicationFolder(Sys::Install::ProductInfo& pi, HINSTANCE hInst, int resourceId, const wchar_t* destinationFile)
wchar_t* CopyFileToWindowsFolder(Sys::Install::ProductInfo& pi, HINSTANCE hInst, int resourceId, const wchar_t* destinationFile)

InternetConnection: WinINet (Windows Internet)
InternetConnection()
bool Open()
It initializes an application's use of the WinINet functions.  Google Microsoft
bool Open(const wchar_t* agent, DWORD accessType, const wchar_t* proxyName, const wchar_t* proxyBypass, DWORD flags)
It initializes an application's use of the WinINet functions.  Google Microsoft
~ InternetConnection()

Json: JavaScript Object Notation If Type is JSON_TYPE_STRING, use StringValue If Type is JSON_TYPE_NUMBER, use NumberValue If Type is JSON_TYPE_OBJECT, use ObjectValue If Type is JSON_TYPE_ARRAY, use ArrayValue
Json()
Json(const Sys::Json& init)
Sys::Json& operator =(const Sys::Json& init)
__int64 GetNumberValue()
bool GetBoolValue()
bool GetPairValue(const wchar_t* pairName, Sys::Json& out_value)
bool IsArray()
bool IsBool()
bool IsEmptyArray()
bool IsNull()
bool IsNumber()
bool IsObject()
bool IsString()
bool SetStringValue(const wchar_t* value)
bool SetType(int type)
type: JSON_TYPE_STRING, JSON_TYPE_NUMBER, JSON_TYPE_OBJECT, JSON_TYPE_ARRAY, JSON_TYPE_TRUE, JSON_TYPE_FALSE, JSON_TYPE_NULL
const wchar_t* CreateFromString(const wchar_t* input_data)
const wchar_t* GetStringValue()
const wchar_t* Load(const wchar_t* filename)
It returns the error description, or nullptr if the file is correctly processed
const wchar_t* LoadFromResource(bool isUtf8, HINSTANCE hInstance, int resource_id)
IDF_NAME BIN "items\\thread.txt"
const wchar_t* Save(const wchar_t* filename)
It returns the error description, or nullptr if the file is correctly saved
double GetDoubleValue()
int GetType()
It returns: JSON_TYPE_STRING, JSON_TYPE_NUMBER, JSON_TYPE_OBJECT, JSON_TYPE_ARRAY, JSON_TYPE_TRUE, JSON_TYPE_FALSE, JSON_TYPE_NULL
static void ExpandUniversalChars(const wchar_t* input, wstring& output)
static void GetText(Sys::Json& input, wstring& output)
It returns the text of the JSON input variable
void Delete()
void GetText(wstring& out_content)
void SetBoolValue(bool value)
void SetDoubleValue(double value)
void SetNumberValue(__int64 value)
~ Json()
int Type
const wchar_t * StringValue
double DoubleValue
__int64 NumberValue
bool BoolValue

Key
Key(HKEY type)
Key(HKEY type, Sys::IError& ierror)
bool Close()
bool Create(wchar_t* name)
bool DeleteSubkey(wchar_t* name)
bool Open(wchar_t* name)
bool Open(wchar_t* name, REGSAM access)
bool Set(wchar_t* name, DWORD value)
bool Set(wchar_t* name, wchar_t* value)
wchar_t* Enumerate(int index)
wchar_t* ReadStringValue(const wchar_t* valueName)
~ Key(void)

LineToBuffer: Helper functions to read the lines from a file
LineToBuffer()
void Line(const unsigned char* line_text, size_t text_length)
~ LineToBuffer()

LineToBufferW: Helper functions to read the lines from a file
LineToBufferW()
void Line(const wchar_t* line_text, size_t text_length)
~ LineToBufferW()

LowResStopwatch: It measures duration
LowResStopwatch()
double GetSeconds() const
void GetProgressInfo(double progress, wchar_t* buffer, int buffer_len)
The function fills the buffer with information about the progress of a task After callint Stopwatch.Start(), you need to call GetProgressInfo repeatedly providing the progress value from 0.0 to 100.0
void Start()
~ LowResStopwatch()

Lzw: LZW compression
Lzw()
bool Expand(const string& input, string& output)
void Compress(const string& input, string& output)
~ Lzw()

LzwDictionary: A dictionary to Decode LZW compressed data
LzwDictionary()
bool Add(unsigned __int32 key, const string& info)
bool Find(unsigned __int32 key, string& out_info)const
void Delete()
~ LzwDictionary()

MTLObject: Material Template Library object
MTLObject()
void Delete()
void GetText(wstring& out_text)
~ MTLObject()

MaterialTemplateLibrary: MTL file
MaterialTemplateLibrary()
bool GetKa(const wchar_t* usemtl, Sys::ColorF& out_Ka)const
bool GetKa(const wstring& usemtl, Sys::ColorF& out_Ka)const
bool GetKd(const wchar_t* usemtl, Sys::ColorF& out_Kd)const
bool GetKd(const wstring& usemtl, Sys::ColorF& out_Kd)const
bool GetKe(const wchar_t* usemtl, Sys::ColorF& out_Ke)const
bool GetKe(const wstring& usemtl, Sys::ColorF& out_Ke)const
bool GetKs(const wchar_t* usemtl, Sys::ColorF& out_Ks)const
bool GetKs(const wstring& usemtl, Sys::ColorF& out_Ks)const
bool GetMaterial(const wchar_t* usemtl, Sys::MTLObject& out_material)const
bool GetMaterial(const wstring& usemtl, Sys::MTLObject& out_material)const
const wchar_t* Create(const wchar_t* input_data)
const wchar_t* Load(const wchar_t* filename)
It returns the error description, or nullptr if the file is correctly processed
const wchar_t* LoadFromResource(HINSTANCE hInstance, int resource_id)
It returns the error description, or nullptr if the resource is correctly processed
const wchar_t* Save(const wchar_t* filename)
It returns the error description, or nullptr if the file is correctly saved
void Delete()
void GetText(wstring& out_text)
~ MaterialTemplateLibrary()

MatrixX: A matrix of double values than can store the name of each colum (using STL)
MatrixX()
bool AppendRight(const Sys::MatrixX& appendThis)
bool BinaryLoad(const wchar_t* filename)
bool BinarySave(const wchar_t* filename)
bool CsvLoad(const wchar_t* filename)
bool CsvSave(const wchar_t* filename)
bool DeleteCol(int columnIndex)
bool DeleteCols(const valarray<size_t >& columnIndex)
bool GetCol(int columnIndex, Sys::MatrixX& output)
bool GetCols(const valarray<size_t >& columnIndex, Sys::MatrixX& output)
bool GetRows(const valarray<size_t >& rowIndex, Sys::MatrixX& output)
bool InsertCol(int columnIndex)
bool SetColumnName(int columnIndex, const wchar_t* name)
const wchar_t* GetColumnName(int columnIndex)
int GetColCount()
int GetRowCount()
void Delete()
~ MatrixX()

MatrixXHelper: This class is only used by Sys::MatrixX
MatrixXHelper()
void Line(const unsigned char* line_text, size_t text_length)
~ MatrixXHelper()

MemoryMappedFile
MemoryMappedFile()
bool GetSize(LARGE_INTEGER& size)
Returns the size in bytes of the file
bool SequentialRead(void* buffer, DWORD byteCount)
size_t GetRemainingByteCount()
size_t GetSizeInBytes()
void Close()
void ResetSequentialRead()
void* CreateForReading(const wchar_t* filename)
It returns the memory address to read the data, or nullptr if error
void* CreateForWritting(const wchar_t* filename)
It returns the memory address to write the data, or nullptr if error
~ MemoryMappedFile()

Metrics: It provides system information about the computer
static bool GetLanguage(wchar_t* buffer, int buffer_size)
static bool IsEnglishLanguage()
static bool IsFrenchLanguage()
static bool IsGermanLanguage()
static bool IsLanguage(wchar_t char2, wchar_t char3)
static bool IsShuttingDown()
static bool IsSpanishLanguage()
static double GetScreenPixelsPerCentimeter()
It returns the number of pixels in one centimeter in the display
static int GetBestIconSize()
It returns the icon size for an icon of 0.4233 cm. The return value is one of: 16, 20, 24, 32, 40, 48, 64, 96, 128, 256
static int GetBestIconSize(int* iconSizes, int numIcons, int availableSize)
Given a set of icon sizes, it returns the icon size that best fit in the availableSize the icon is assumed to be squared. Example: int iconSizes[] ={24, 32, 40, 48}; int iconSize = Sys::Metrics::GetBestIconSize(iconSizes, 4, 30); It returns 32 int iconSize = Sys::Metrics::GetBestIconSize(iconSizes, 4, 25); It returns 24
static int GetCaptionHeight()
static int GetCursorHeight()
static int GetCursorWidth()
static int GetDlgFrameHeight()
static int GetDoubleClickHeight()
static int GetDoubleClickWidth()
static int GetDragHeight()
static int GetDragWidth()
static int GetFixedFrameHeight()
static int GetFixedFrameThickness()
static int GetFocusBorderHeight()
static int GetFocusBorderWidth()
static int GetFullScreenHeight()
static int GetFullScreenWidth()
static int GetHScrollHeight()
static int GetHScrollThumbWidth()
static int GetHScrollWidth()
static int GetIconHeight()
static int GetIconSpacingHeight()
static int GetIconSpacingWidth()
static int GetIconWidth()
static int GetKanjiWindowHeight()
static int GetMaxIconSize(int* iconSizes, int numIcons, int availableSize)
Given a set of icon sizes, it returns the icon size that fits in availableSize the icon is assumed to be squared. Example: int iconSizes[] ={24, 32, 40, 48}; int iconSize = Sys::Metrics::GetMaxIconSize(availableSize, 4, 44); It returns 40 int iconSize = Sys::Metrics::GetMaxIconSize(availableSize, 4, 25); It returns 24
static int GetMaxTrackHeight()
static int GetMaxTrackWidth()
static int GetMaximinizedWindowWidth()
static int GetMaximinzedWindowHeight()
static int GetMenuCheckHeight()
static int GetMenuCheckWidth()
static int GetMenuHeight()
static int GetMenuSizeHeight()
static int GetMenuWidth()
static int GetMinSpacingHeight()
static int GetMinSpacingWidth()
static int GetMinTrackHeight()
static int GetMinTrackWidth()
static int GetMinWindowHeight()
static int GetMinWindowWidth()
static int GetMinimizedWindowHeight()
static int GetMinimizedWindowType()
static int GetMinimizedWindowWidth()
static int GetMonitorCount()
static int GetMouseButtonsCount()
static int GetScreenDpi()
It returns the number of dots in one inch in the display
static int GetScreenEdgeWidth()
static int GetScreenHeight()
static int GetScreenWidth()
static int GetSizeFrameHeight()
static int GetSizeFrameWidth()
static int GetSmallCaptionButtonHeight()
static int GetSmallCaptionButtonWidth()
static int GetSmallCaptionHeight()
static int GetSmallIconHeight()
static int GetSmallIconWidth()
static int GetSystemStartedType()
static int GetTitleBarButtonWidth()
static int GetPaddedBorderWidth();
static int GetTitleBarHeight()
static int GetVScrollHeight()
static int GetVScrollWidth()
static int GetVScroolThumbHeight()
static int GetVirtualScreenHeight()
static int GetVirtualScreenWidth()
static int GetWindow3DBorderHeight()
static int GetWindow3DBorderWidth()
static int GetWindowBorderHeight()
static int GetWindowBorderWidth()
static void GetTextExtentFromDisplay(const wchar_t* text, HFONT hFont, SIZE& output)
static void GetTextMetricsFromDisplay(LOGFONT& logfont, TEXTMETRIC& result)
static void GetTextMetricsFromDisplay(TEXTMETRIC& result)

NamedPipe
HANDLE GetHandle()
NamedPipe(void)
bool Connect()
bool CreateServer(const wchar_t* lpName, DWORD nBufferSize, DWORD nTimeout)
lpName = L"\\\\.\\pipe\\TimeService"); lpName = L"\\\\ServerName\\pipe\\TimeService"); nTimeout = 1000 millisec nBufferSize = sizeof(struct to move through the pipe) You may implement a Server as a Service
bool Disconnect()
bool Flush()
bool IsOpen()
bool Read(LPVOID lpBuffer, DWORD nNumbOfBytesToRead, LPDWORD lpNumbOfBytesRead)
bool Write(LPCVOID lpBuffer, DWORD nNumbOfBytesToWrite, LPDWORD lpNumbOfBytesWritten)
operator HANDLE()
virtual ~ NamedPipe(void)
void Close()

ObjDocument: Wavefront document
ObjDocument()
bool LoadBinary(Sys::BufferReaderV& input)
bool LoadBinary(const wchar_t* filename)
bool Save(const wchar_t* filename)
bool SaveBinary(const wchar_t* filename)
const wchar_t* Create(const char* input_data)
const wchar_t* Create(const wchar_t* input_data)
const wchar_t* Load(const wchar_t* filename)
It returns the error description, or nullptr if the file is correctly processed
const wchar_t* LoadFromResource(HINSTANCE hInstance, int resource_id)
It returns the error description, or nullptr if the resource is correctly processed
int GetNodeIndex(const wchar_t* nodeName)const
It returns the nodeIndex of the obj node with the specified name or -1 if the the node is not found
size_t GetFaceGroupCount() const
It returns the total number of group faces in all the document
size_t GetIndexArrayCount(bool triangleStrip, size_t nodeIndex, size_t faceGroupIndex)const
It returns the number of indexes in the specified faceGroup If triangleStrip is true, it returns the number of indexes for a triangle strip If triangleStrip is false, it returns the number indexes for a triangle list
size_t GetTotalIndexCount(bool triangleStrip)const
It returns the total number of indexes in all the objects in the document If triangleStrip is true, it returns the number of indexes for a triangle strip If triangleStrip is false, it returns the number indexes for a triangle list
size_t GetTotalVertexCount() const
It returns the total number of vertexes in all the objects in the document
size_t GetVertexCount(size_t nodeIndex, size_t faceGroupIndex)const
It returns the number of vertexes in all faces in the specified faceGroup
void Delete()
void GetVertexMaximum(Sys::Point3DF& out_maximum)const
It returns the maximum value of x, y and z found in all the vertex in the document
void GetVertexMinimum(Sys::Point3DF& out_minimum)const
It returns the minimum value of x, y and z found in all the vertex in the document
void RefreshIndexes()
void RemoveTexture()
void VertexAdd(const Sys::Point3DF& value)
It adds the specified value to all the vertex in the document
void VertexCenter()
It centers the values of x, y and z of all the vertex in the document
void VertexDivide(const Sys::Point3DF& value)
It divides all the vertex in the document by the specified value
void VertexMultiply(const Sys::Point3DF& value)
It multiplies all the vertex in the document by the specified value
void VertexNormalizeSize()
It scales the vertex in the document so that the bounding box goes from -1 to 1
void VertexSubstract(const Sys::Point3DF& value)
It substracts the specified value to all the vertex in the document
void Write(ObjFaceGroup& faceGroup, Sys::FileWriter& fileWriter)
void Write(size_t nodeIndex, Sys::FileWriter& fileWriter)
~ ObjDocument()

ObjFaceGroup
ObjFaceGroup()
bool LoadBinary(Sys::BufferReaderV& input, bool hasTexture)
bool LoadBinary(Sys::FileReaderAscii& file, bool hasTexture)
bool SaveBinary(Sys::FileWriter& file, bool hasTexture)const
void Delete()
~ ObjFaceGroup()

ObjFacePoint
ObjFacePoint()
bool LoadBinary(Sys::BufferReaderV& input, bool hasTexture)
bool LoadBinary(Sys::FileReaderAscii& file, bool hasTexture)
bool SaveBinary(Sys::FileWriter& file, bool hasTexture)const
void RemoveTexture()
void Reset()
~ ObjFacePoint()

ObjNode
ObjNode()
bool LoadBinary(Sys::BufferReaderV& input, bool hasTexture)
bool LoadBinary(Sys::FileReaderAscii& file, bool hasTexture)
bool SaveBinary(Sys::FileWriter& file, bool hasTexture)const
void Delete()
~ ObjNode()

Performance: It measures the time spent in each part of a program
Performance(int index)
static void Display(HWND hWnd)
~ Performance()

Pipe
HANDLE GetReadHandle()
HANDLE GetWriteHandle()
Pipe(void)
bool Create()
bool Create(SECURITY_ATTRIBUTES& securityAttributes)
bool IsReadOpen()
bool IsWriteOpen()
bool Read(LPVOID lpBuffer, DWORD nNumbOfBytesToRead, LPDWORD lpNumbOfBytesRead)
It returns when one of the following is true: a write operation completes on the write end of the pipe, the number of bytes requested has been read, or an error occurs.
bool Write(LPCVOID lpBuffer, DWORD nNumbOfBytesToWrite, LPDWORD lpNumbOfBytesWritten)
When it is used to write to an anonymous pipe, the write operation is not completed until all bytes are written. If the pipe buffer is full before all bytes are written, Write does not return until another process or thread uses Read to make more buffer space available.
void ReadClose()
void WriteClose()
~ Pipe(void)

Point3DF
Point3DF()
Point3DF(float x, float y, float z)
Sys::Point3DF& operator *=(const Sys::Point3DF& value)
Sys::Point3DF& operator +=(const Sys::Point3DF& value)
Sys::Point3DF& operator -=(const Sys::Point3DF& value)
Sys::Point3DF& operator /=(const Sys::Point3DF& value)
bool IsNull() const
bool operator !=(const Sys::Point3DF& init)const
bool operator <(const Sys::Point3DF& init)const
bool operator ==(const Sys::Point3DF& init)const
bool operator >(const Sys::Point3DF& init)const
void Average(const Sys::Point3DF& inputA, const Sys::Point3DF& inputB)
void CrossProduct(const Sys::Point3DF& inputA, const Sys::Point3DF& inputB)
void Difference(const Sys::Point3DF& inputA, const Sys::Point3DF& inputB)
void Normalize()
void Reset()
void Set(float x, float y, float z)
void SetToNull()
~ Point3DF()

PointArray: It stores an array of POINT values
PointArray()
PointArray(const Sys::PointArray& init)
Sys::PointArray& operator =(const Sys::PointArray& init)
bool Create(size_t pointCount)
virtual ~ PointArray()
void Delete()

Process: It runs another program from a program. It is possible to have access to the output produced by this other program It is also possible to write to the standard input of the program
Process(void)
bool Execute(const wchar_t* programName, bool standardInput, const wchar_t* workingDirectory, const RECT& rectWindow)
It calls a command line program, the output of the program is read using pipeStandardOutput if standardInput is true, then the standard input of the program can be written using pipeStandardInput workingDirectory may be nullptr char text[1024]; DWORD dwRead; while(process.pipeStandardOutput.Read(text, 1023, &dwRead) == true && dwRead != 0) { text[dwRead] = '\0'; ... } process.pipeStandardOutput.ReadClose(); if rectWindow isEmpty, the window is not shown
bool Execute(const wchar_t* programName, bool standardInput, const wchar_t* workingDirectory, const RECT& rectWindow, wstring& output)
It calls a command line program. workingDirectory may be nullptr. The output produced by the program is stored in output. if standardInput is true, then the standard input of the program can be written using pipeStandardInput if rectWindow isEmpty, the window is not shown
bool Execute(const wchar_t* programName, wstring& output)
It calls a command line program. The output produced by the program is stored in output.
bool Execute(const wstring& programName, wstring& output)
It calls a command line program. The output produced by the program is stored in output.
bool NonOutputExecute(const wchar_t* programName, bool standardInput, const wchar_t* workingDirectory, const RECT& rectWindow)
It calls a command line program. workingDirectory may be nullptr. if standardInput is true, then the standard input of the program can be written using pipeStandardInput The output produced by the program is discarded if rectWindow isEmpty, the window is not shown
bool Terminate(UINT returnCode)
Terminates the specified process and all of its threads  Google Microsoft
static HWND OpenInternetExplorer(const wchar_t* url)
You may use this function by itself to run Microsoft Internet Explorer. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static HWND OpenInternetExplorer(const wstring& url)
You may use this function by itself to run Microsoft Internet Explorer. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool ExecuteProgram(const wchar_t* program_exe, const wchar_t* file_to_open, const wchar_t* workingDirectory)
Use this function to run the specified program and to open the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool NonOutputExecute(const wchar_t* programName, const wchar_t* workingDirectory, const RECT& rectWindow)
It calls a command line program. workingDirectory may be nullptr. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS! The program does not receive any input The output produced by the program is discarded if rectWindow isEmpty, the window is not shown
static bool OpenFile(HWND hWnd, const wchar_t* filename)
Use this function to run the default program that opens the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool OpenFile(const wchar_t* filename)
Use this function to run the default program that opens the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool OpenFile(const wchar_t* filename, const wchar_t* workingDirectory)
Use this function to run the default program that opens the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool OpenFile(const wstring& filename)
Use this function to run the default program that opens the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool OpenFile(const wstring& filename, const wstring& workingDirectory)
Use this function to run the default program that opens the specified file. THIS FUNCTION DOES NOT NEED AN OBJECT OF THE CLASS!
static bool PrintFile(const wchar_t* filename)
static bool PrintFile(const wchar_t* filename, const wchar_t* workingDirectory)
static bool PrintFile(const wstring& filename)
static bool PrintFile(const wstring& filename, const wstring& workingDirectory)
static const wchar_t* GetErrorDesc(HINSTANCE result)
virtual ~ Process(void)
void CloseProcessHandles()
void Wait()
It waits until the process exits

Random: It generates random values uniformily distributed. In a multithread program, you must create one object for each thread.
Random()
double Generate()
It generates a random value in the range (0.0, 1.0)
int GenerateInt(int minValue, int maxValue)
It generates a random value in the range [minValue, maxValue)]
void SetPortableIndex(int portableIndex)
The random sequence is the same when the portableIndex is the same You should set the portable index only for Debug Purposes, otherwise this function should not be called
~ Random()

RandomFast: It generates random values uniformily distributed. In a multithread program, you must create one object for each thread.
RandomFast()
double Generate()
It generates a random value in the range (0.0, 1.0)
int GenerateInt(int minValue, int maxValue)
It generates a random value in the range [minValue, maxValue]
void Reset()
void SetPortableIndex(int portableIndex)
The random sequence is the same when the portableIndex is the same You should set the portable index only for Debug Purposes, otherwise this function should not be called
~ RandomFast()

Rectangle
Rectangle()
bool IsInside(const Rectangle& rectSmall)const
bool IsInside(const RotatedRectangle& rectSmall)const
bool IsInside(const Sys::Point2D& point)const
bool IsInsideRegion(const vector<Rectangle >& regionBig)const
bool IsIntersected(const Rectangle& rect)const
~ Rectangle()

Region
Region()
bool CreateElliptic(int x1, int y1, int x2, int y2)
bool CreateFromPath(HDC hdc)
bool CreatePolyPolygon(const POINT* lppt, const int* polyCounts, int count, int polyFillMode)
bool CreatePolygon(LPPOINT lpPoints, int count, int mode)
bool CreateRect(int x1, int y1, int x2, int y2)
bool CreateRoundRect(int x1, int y1, int x2, int y2, int x3, int y3)
void Delete()
~ Region()

RegistryKey: It provides support to read and modify the Windows Registry
RegistryKey()
bool Close()
bool CreateSubKey(const wchar_t* childKeyName, REGSAM access, Sys::RegistryKey& out_subKey)
access: KEY_READ, KEY_WRITE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_EXECUTE, KEY_ALL_ACCESS
bool Enumerate(int index, wchar_t* buffer, DWORD buffer_size)
bool Open(HKEY parentKey, const wchar_t* keyName, REGSAM access)
parentKey: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT access: KEY_READ, KEY_WRITE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_EXECUTE, KEY_ALL_ACCESS keyName must be nullptr to open: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT
bool Open(Sys::RegistryKey& parentKey, const wchar_t* keyName, REGSAM access)
access: KEY_READ, KEY_WRITE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_EXECUTE, KEY_ALL_ACCESS
bool OpenClasesRoot(REGSAM access)
bool ReadStringValue(const wchar_t* name, wchar_t* buffer, unsigned long buffer_size)
The value is returned in buffer, name must be L"" or nullptr to read the default value The key MUST be open using: KEY_READ
bool RegistryKey::DeleteSubKey(const wchar_t* name)
name must be L"" or nullptr to set the default value
bool RegistryKey::SetValue(const wchar_t* name, const DWORD value)
name must be L"" or nullptr to set the default value
bool RegistryKey::SetValue(const wchar_t* name, const wchar_t* value)
name must be L"" or nullptr to set the default value
~ RegistryKey()

RotatedRectangle
RotatedRectangle()
bool IsInsideRegion(const vector<Rectangle >& regionBig)const
~ RotatedRectangle()

Row
Row()
inline T& operator [ ](int col)
inline T& operator [ ](int col)const
~ Row()

SecurityCertificate
SecurityCertificate()
const wchar_t* GetErrorDesc(int error)
int Verify(const wchar_t* serverName, DWORD certFlags)
void GetDisplayInfo(bool isLocal, wstring& out_displayInfo)
~ SecurityCertificate()

SecuritySupportProvider
SECURITY_STATUS ClientHandshake(Sys::IChannel& ichannel, const wchar_t* serverName)
SECURITY_STATUS CreateCredentials(DWORD protocol)
protocol: SP_PROT_TLS1, SP_PROT_PCT1, SP_PROT_SSL2, SP_PROT_SSL3
SECURITY_STATUS CreateCredentials(DWORD protocol, ALG_ID keyExchange)
protocol: SP_PROT_TLS1, SP_PROT_PCT1, SP_PROT_SSL2, SP_PROT_SSL3 keyExchange: 0, CALG_RSA_KEYX, CALG_DH_EPHEM, ...
SECURITY_STATUS CreateCredentials(const wchar_t* username, DWORD protocol, ALG_ID keyExchange)
protocol: SP_PROT_TLS1, SP_PROT_PCT1, SP_PROT_SSL2, SP_PROT_SSL3 keyExchange: 0, CALG_RSA_KEYX, CALG_DH_EPHEM, ...
SECURITY_STATUS DisconnectFromServer(Sys::IChannel& ichannel)
SECURITY_STATUS GetCertificate(Sys::SecurityCertificate& certificate)
SECURITY_STATUS Receive(Sys::IChannel& ichannel, string& data)
SecuritySupportProvider()
int ExtractCode(const string& data)
int ReceiveCode(Sys::IChannel& ichannel)
int ReceiveCode(Sys::IChannel& ichannel, string& response)
int Send(Sys::IChannel& ichannel, const char* data)
int Send(Sys::IChannel& ichannel, const char* data, int dataLength)
static const wchar_t* GetErrorDescr(SECURITY_STATUS status)
void GetConnectionInfo(wstring& out_connectionInfo)
~ SecuritySupportProvider()

SerialAssistant
static __int32 GetByteCount(const string& text)
It returns the number of bytes to serialize the variable
static __int32 GetByteCount(const wstring& text)
It returns the number of bytes to serialize the variable
static bool Load(Sys::IStorer& source, MATRIX& destination)
static bool Load(Sys::IStorer& source, MATRIXC& destination)
static bool Load(Sys::IStorer& source, double& destination)
static bool Load(Sys::IStorer& source, int& destination)
static bool Load(Sys::IStorer& source, string& destination)
static bool Load(Sys::IStorer& source, valarray<complex<double>>& destination)
static bool Load(Sys::IStorer& source, valarray<double >& destination)
static bool Load(Sys::IStorer& source, wstring& destination)
static bool Save(Sys::IStorer& destination, const MATRIX& source)
static bool Save(Sys::IStorer& destination, const MATRIXC& source)
static bool Save(Sys::IStorer& destination, const string& source)
static bool Save(Sys::IStorer& destination, const valarray<complex<double>>& source)
static bool Save(Sys::IStorer& destination, const valarray<double >& source)
static bool Save(Sys::IStorer& destination, const wstring& source)
static bool Save(Sys::IStorer& destination, double source)
static bool Save(Sys::IStorer& destination, int source)

SoapEnvelope
SoapEnvelope(void)
bool AddParameter(const wchar_t* name, const bool value)
It adds a parameter with the specified name and value
bool AddParameter(const wchar_t* name, const double value)
It adds a parameter with the specified name and value
bool AddParameter(const wchar_t* name, const int value)
It adds a parameter with the specified name and value
bool AddParameter(const wchar_t* name, const wchar_t* value)
It adds a parameter with the specified name and value
bool AddParameter(const wstring& name, const bool value)
It adds a parameter with the specified name and value
bool AddParameter(const wstring& name, const double value)
It adds a parameter with the specified name and value
bool AddParameter(const wstring& name, const int value)
It adds a parameter with the specified name and value
bool AddParameter(const wstring& name, const wstring& value)
It adds a parameter with the specified name and value
bool DeleteAllParameters()
bool GetBody(list<Sys::Xml >::iterator& out_body)
bool GetParameterIterator(const wchar_t* name, list<Sys::Xml >::iterator& out_parameter)
bool GetParameterIterator(int parameter_index, list<Sys::Xml >::iterator& out_parameter)
bool GetParameterName(int index, wstring& out_name)
If the parameter exist, it sets the name of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wchar_t* name, bool & out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wchar_t* name, double& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wchar_t* name, int& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wchar_t* name, wstring& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wstring& name, bool & out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wstring& name, double& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wstring& name, int& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(const wstring& name, wstring& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(int index, bool & out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(int index, double& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(int index, int& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetParameterValue(int index, wstring& out_value)
If the parameter exist, it returns the value of the parameter and returns true. Otherwise, it returns false
bool GetResponse(list<Sys::Xml >::iterator& out_response)
bool SetActionName(const wstring name)
bool SetActionXmlns(const wstring name)
bool SetParameterName(int index, const wchar_t* name)
If the parameter exist, it sets the name of the parameter and returns true. Otherwise, it returns false
bool SetParameterName(int index, const wstring& name)
If the parameter exist, it sets the name of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wchar_t* name, const bool value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wchar_t* name, const double value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wchar_t* name, const int value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wchar_t* name, const wchar_t* value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wstring& name, const bool value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wstring& name, const double value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wstring& name, const int value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(const wstring& name, const wstring& value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(int index, const wchar_t* value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
bool SetParameterValue(int index, const wstring& value)
If the parameter exist, it sets the value of the parameter and returns true. Otherwise, it returns false
virtual void Enumerate(wchar_t* * data, int colCount, int rowIndex)
virtual ~ SoapEnvelope(void)
wstring GetActionName()
wstring GetActionXmlns()
wstring ActionXmlns
wstring ActionName

Socket
SOCKET accept()
It permits an incoming connection attempt on a socket. If no error occurs, it returns a value of type SOCKET that is a descriptor for the new socket. This returned value is a handle for the socket on which the actual connection is made. Otherwise, a value of INVALID_SOCKET is returned, and a specific error code can be retrieved by calling Sys::GetLastErrorInformation  Google Microsoft
Socket(void)
bool GetIpAddress(bool includeIPV6, vector<wstring >& out_ipaddress)
It returns the local IP address
bool GetIpAddress(const wchar_t* hostname, bool includeIPV6, vector<wstring >& out_ipaddress)
It returns the IP address of the specified host
const wchar_t* GetLastErrorDesc()
const wchar_t* StartServer(unsigned short port, int numbClients)
int Connect(LPSOCKADDR sockAddr, int address_family, int socket_type, int protocol)
It connects the socket using the specified information If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description address_family: AF_UNSPEC, AF_INET, AF_IPX, AF_APPLETALK, AF_NETBIOS, AF_INET6, AF_IRDA, AF_BTH type: SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET protocol: IPPROTO_ICMP, IPPROTO_IGMP, BTHPROTO_RFCOMM, IPPROTO_TCP, IPPROTO_UDP, IPPROTO_ICMPV6, IPPROTO_RM
int Connect(SOCKADDR_IN& sockAddr, int address_family, int socket_type, int protocol)
It connects the socket using the specified information If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description address_family: AF_UNSPEC, AF_INET, AF_IPX, AF_APPLETALK, AF_NETBIOS, AF_INET6, AF_IRDA, AF_BTH type: SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET protocol: IPPROTO_ICMP, IPPROTO_IGMP, BTHPROTO_RFCOMM, IPPROTO_TCP, IPPROTO_UDP, IPPROTO_ICMPV6, IPPROTO_RM
int Connect(const wchar_t* serverName, unsigned short port)
It connects the socket to the specified server address and port If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description
int Connect(const wstring& serverName, unsigned short port)
It connects the socket to the specified server address and port If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description
int ConnectIPV4(unsigned short port, const wchar_t* ipV4Address)
It connects the socket to the specified ip address and port If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description NOTE: This function requires _WIN32_WINNT >= 0x0600
int ConnectIPV6(unsigned short port, const wchar_t* ipV6Address)
It connects the socket to the specified ip address and port If no error occurs, it returns zero. If error occurs, it returns SOCKET_ERROR call socket.GetLastErrorDesc() to get error description NOTE: This function requires _WIN32_WINNT >= 0x0600
int GetMaxMessageSize()
int GetPortNumber()
int GetServicePortByName(const wchar_t* serviceName)
int Read(void* out_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were read, or -1 if error
int Receive(Sys::Http& out_http)
It returns: the total number of bytes received, SOCKET_DISCONNECTED, or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description
int Receive(char* out_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were received, or -1 if error
int ReceiveCode()
Returns the first number in the line received  Google Microsoft
int ReceiveLine(string& output)
It returns: the total number of bytes received, SOCKET_DISCONNECTED, or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description.  Google Microsoft
int Send(const Sys::Http& in_http)
It returns: the total number of bytes sent, SOCKET_DISCONNECTED or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description
int Send(const char* buffer)
It returns: the total number of bytes sent, SOCKET_DISCONNECTED, or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description. BE AWARE that this function will send data until the nullptr character is found  Google Microsoft
int Send(const char* inbuffer, int bufferSizeInBytes)
It returns the actual number of bytes that were sent, or -1 if error
int SendLargeBlock(const char* data, int totalBytes, const int blockSize)
It breaks the data into small blocks and send each block until all data have been sent It returns: the total number of bytes sent, SOCKET_DISCONNECTED or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description blockSize: 512, 1024, 2048, ... , 8192  Google Microsoft
int Write(const void* in_buffer, int bufferSizeInBytes)
It returns the actual number of bytes that were written, or -1 if error
int recv(char* buffer, int bufferSize, int flags)
It returns: the total number of bytes received, SOCKET_DISCONNECTED, or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description.  Google Microsoft
int send(const char* buffer, int bufferSize, int flags)
It returns: the total number of bytes sent, SOCKET_DISCONNECTED, or SOCKET_ERROR If SOCKET_ERROR is returned, you may call socket.GetLastErrorDesc() to get error description.  Google Microsoft
operator SOCKET()
static const wchar_t* GetErrorDescr(WORD error)
static unsigned short GetMaxNumbSockets()
static void GetDescription(wstring& out_description)
static void GetSystemStatus(wstring& out_status)
static void RemoveReturn(char* text)
virtual void Disconnect()
It closes an existing socket  Google Microsoft
virtual ~ Socket(void)
void Attach(SOCKET& inputSocket, unsigned int port)
void ShutdownBoth()
It disables both sends and receives on a socket  Google Microsoft
void ShutdownReceive()
It disables receives on a socket  Google Microsoft
void ShutdownSend()
It disables sends on a socket  Google Microsoft

SqlTime
SqlTime()
operator Sys::Time&()
~ SqlTime()

Stopwatch: It provides support to measure time with high resolution and precision
LARGE_INTEGER GetMicroseconds()
LARGE_INTEGER GetMilliseconds()
LARGE_INTEGER GetNanoseconds()
Stopwatch(void)
double GetSeconds()
virtual ~ Stopwatch(void)
void Start()
wstring GetMicrosecondsText()
wstring GetMillisecondsText()

String
String()
String(const Sys::String& init)
String(const unsigned char* init)
Sys::String& operator +=(const unsigned char* text)
Sys::String& operator +=(unsigned char c)
Sys::String& operator +=(unsigned char* text)
Sys::String& operator =(const Sys::String& init)
bool Append(const unsigned char* text)
bool Append(unsigned char c)
bool Set(const unsigned char* text)
bool operator <(const Sys::String& init)const
bool operator ==(const Sys::String& init)const
bool operator >(const Sys::String& init)const
const unsigned char& operator [ ](long index)const
operator const string() const
operator const unsigned char*() const
size_t GetSize() const
size_t GetTextLength() const
unsigned char& operator [ ](long index)
void Delete()
void SetSize(size_t size)
void ToLower()
void ToUpper()
~ String()

SvgReader: It provides support for reading a Scalable Vector Graphics file You can use Corel Draw to create SVG files, export the document to millimeters or pixels to enough resolution. To assign a name to each object use Corel Draw > Tools > Object Data Manager
SvgReader()
bool FindSvgElement(const wchar_t* svg_type, const wchar_t* svg_id, list<Sys::Xml >::iterator& out_element)
It finds a SVG element with the specified type and ID svg_type: rect, path, ...
bool FindSvgElementRecursive(Sys::Xml& root, const wchar_t* svg_type, const wchar_t* svg_id, list<Sys::Xml >::iterator& out_element)
bool FindSvgGroup(const wchar_t* svg_id, list<Sys::Xml >::iterator& out_group)
It finds a SVG
bool GetPathPoints(const wchar_t* svg_id, double scale, Sys::PointArray& out_pointArray, wstring& out_type)
It reads a node, out_type returns an array with the letters: c, C, l, L, ...
bool GetPathPoints(const wchar_t* svg_id, vector<Sys::PointF >& out_points, wstring& out_type)
It reads a node, out_type returns an array with the letters: c, C, l, L, ...
bool GetPathPoints(list<Sys::Xml >::iterator element, double scale, Sys::PointArray& out_pointArray, wstring& out_type)
It reads a node, out_type returns an array with the letters: c, C, l, L, ...
bool GetPathPoints(list<Sys::Xml >::iterator element, vector<Sys::PointF >& out_points, wstring& out_type)
It reads a node, out_type returns an array with the letters: c, C, l, L, ...
bool GetPolygonPoints(const wchar_t* svg_id, double scale, Sys::PointArray& out_pointArray)
It reads a
bool GetPolygonPoints(const wchar_t* svg_id, vector<Sys::PointF >& out_points)
It reads a
bool GetPolygonPoints(list<Sys::Xml >::iterator element, double scale, Sys::PointArray& out_pointArray)
It reads a
bool GetPolygonPoints(list<Sys::Xml >::iterator element, vector<Sys::PointF >& out_points)
It reads a
bool GetPolylinePoints(const wchar_t* svg_id, double scale, Sys::PointArray& out_pointArray)
It reads a
bool GetPolylinePoints(const wchar_t* svg_id, vector<Sys::PointF >& out_points)
It reads a
bool GetPolylinePoints(list<Sys::Xml >::iterator element, double scale, Sys::PointArray& out_pointArray)
It reads a
bool GetPolylinePoints(list<Sys::Xml >::iterator element, vector<Sys::PointF >& out_points)
It reads a
bool GetRectangle(const wchar_t* svg_id, Sys::PointF& out_position, Sys::PointF& out_size)
It reads a
bool GetRectangle(const wchar_t* svg_id, double scale, RECT& output)
It reads a
virtual ~ SvgReader()

TensorArray
Sys::Tensor& operator [ ](size_t index)
Sys::TensorArray& operator =(const Sys::TensorArray& init)
TensorArray()
TensorArray(const Sys::TensorArray& init)
bool AppendDown(const Sys::TensorArray& source)
It appends at the bottom of the tensor array the items from the source
bool ComputeRelativeError(const Sys::TensorArray& exactValue, valarray<double >& out_relError)const
bool Copy(const Sys::TensorArray& source, size_t index1, size_t index2)
It copies a range elements from the source tensor
bool CopyItems(const Sys::TensorArray& source, const valarray<size_t>indexes)
It copies the items from source that are specified by the indexes in the valarray
bool CopyRange(const Sys::TensorArray& source, size_t index1, size_t index2)
It copies from source the items in the range from index1 to index2
bool DeleteItems(const valarray<size_t>indexes)
It deletes the items that are specified by the indexes in the valarray
bool DeleteRange(size_t index1, size_t index2)
It deletes a range of elements
bool GetFrontMatrix(size_t depthIndex, MATRIX& output)const
bool GetSideMatrix(size_t widthIndex, MATRIX& output)const
bool Save(const wchar_t* filename)const
bool SetCount(size_t count)
bool SetFromMatrix(const MATRIX& input, size_t width, size_t height, size_t depth)
bool ToMatrix(MATRIX& output)const
const Sys::Tensor& operator [ ](size_t index)const
const wchar_t* ConfusionMatrix(const Sys::TensorArray& trueClass, double threshold, MATRIX& out_confusionMatrix)
const wchar_t* Load(const wchar_t* filename)
const wchar_t* LoadCsv(size_t depth, size_t height, size_t width, const wchar_t* filename)
const wchar_t* LoadIdx(const wchar_t* filename)
const wchar_t* SaveCsv(const wchar_t* filename)const
const wchar_t* SaveIdx(const wchar_t* filename)const
double ComputeMse(const Sys::TensorArray& exactValue)const
double GetMaximum() const
double GetMinimum() const
size_t GetCount() const
void Add(double value)
It adds a value to all the elements
void Delete()
void Divide(double value)
It divides all the elements by the specified value
void ExpandClass()
Input Output 3 1 0 0 0 2 0 1 0 0 1 0 0 1 0 0 0 0 0 1
void GetDescription(wchar_t* description, size_t length)const
void GetText(wstring& output)const
void Multiply(double value)
It multiplies all the elements by the specified value
void Set(double value)
It sets all the elements inside to the specified value
void operator *=(double value)
void operator +=(double value)
void operator -=(double value)
void operator /=(double value)
~ TensorArray()

Tessellator
Tessellator()
static size_t GetNumberVertex(const vector<valarray<Sys::Vertex>>& input)
static size_t GetTriangleListNumberIndexes(const vector<valarray<Sys::Vertex>>& input)
static size_t GetTriangleStripNumberIndexes(const vector<valarray<Sys::Vertex>>& input)
static void ScaleMesh(vector<valarray<Sys::Vertex>>& inout, float scaleX, float scaleY, float scaleZ)
static void ShiftMesh(vector<valarray<Sys::Vertex>>& inout, float shiftX, float shiftY, float shiftZ)
void GenerateBox(vector<valarray<Sys::Vertex>>& output)
void GenerateCilinder(size_t numEdges, vector<valarray<Sys::Vertex>>& output)
void GenerateCone(size_t numEdges, vector<valarray<Sys::Vertex>>& output)
void GenerateDodecahedron(vector<valarray<Sys::Vertex>>& output)
void GenerateHorizontalPlane(size_t tessellationX, size_t tessellationZ, float sizeX, float sizeY, float sizeZ, vector<valarray<Sys::Vertex>>& output)
void GenerateIcosahedron(vector<valarray<Sys::Vertex>>& output)
void GenerateOctahedron(vector<valarray<Sys::Vertex>>& output)
void GeneratePiramid(size_t numEdges, vector<valarray<Sys::Vertex>>& output)
void GeneratePolygon(size_t numEdges, vector<valarray<Sys::Vertex>>& output)
void GeneratePrism(size_t numEdges, vector<valarray<Sys::Vertex>>& output)
void GenerateSphere(size_t quality, vector<valarray<Sys::Vertex>>& output)
quality = 1, 2, 3, 4
void GenerateTetrahedron(vector<valarray<Sys::Vertex>>& output)
void GenerateVerticalPlane(size_t tessellationX, size_t tessellationY, float sizeX, float sizeY, float sizeZ, vector<valarray<Sys::Vertex>>& output)
~ Tessellator()

TextAssistant: It provides a set of helper functions to manipulate text
static bool AreSimilar(const wchar_t* text1, const wchar_t* text2)
static bool AreSimilar(const wstring& text1, const wstring& text2)
static bool CompareNoCase(const wstring& first, const wstring& second)
Comparison, not case sensitive for STL list
static bool CopyTruncate(const wchar_t* source, wchar_t* destination, int destination_len)
static bool ExtractDouble(const char* * input, double& out_value)
It returns the double value in *input, the value of *input can be used in successive calls to extract a sequence of double values, the function returns false if error i.e. const char * input = "1.4, 1.5"; double a, b; Sys::TextAssistant::ExtractDouble(&input, a); input++; Sys::TextAssistant::ExtractDouble(&input, b);
static bool ExtractDouble(const wchar_t* * input, double& out_value)
It returns the double value in *input, the value of *input can be used in successive calls to extract a sequence of double values, the function returns false if error i.e. const wchar_t * input = L"1.4, 1.5"; double a, b; Sys::TextAssistant::ExtractDouble(&input, a); input++; Sys::TextAssistant::ExtractDouble(&input, b);
static bool ExtractFileExt(const wchar_t* input, wchar_t* buffer, int bufferSize)
input: fileName with full path Output: file extension in buffer (in lowercase)
static bool ExtractFileName(const wchar_t* input, bool keepFileExt, wchar_t* buffer, int bufferSize)
input: fileName with full path, bufferSize output: the filename with (or without) its extension in the buffer
static bool ExtractFileName(const wchar_t* input, bool keepFileExt, wstring& output)
static bool ExtractFilePath(const wchar_t* input, wchar_t* buffer, int bufferSize)
input: fileName with full path output: the file path in the buffer
static bool ExtractFilePath(const wchar_t* input, wstring& output)
static bool ExtractInt(const char* * input, int& out_value)
It return the integer value in *input, the value of *input can be used in successive calls to extract a sequence of positive integer values, the function returns false if error i.e. const char * input = "1, 2"; int a, b; Sys::TextAssistant::ExtractUint(&input, a); input++; Sys::TextAssistant::ExtractInt(&input, b);
static bool ExtractInt(const wchar_t* * input, int& out_value)
It return the integer value in *input, the value of *input can be used in successive calls to extract a sequence of positive integer values, the function returns false if error i.e. const wchar_t * input = L"1, 2"; int a, b; Sys::TextAssistant::ExtractUint(&input, a); input++; Sys::TextAssistant::ExtractInt(&input, b);
static bool ExtractUint(const char* * input, unsigned int& out_value)
It return the integer value in *input, the value of *input can be used in successive calls to extract a sequence of positive integer values, the function returns false if error i.e. const char * input = "1, 2"; unsigned int a, b; Sys::TextAssistant::ExtractUint(&input, a); input++; Sys::TextAssistant::ExtractUint(&input, b);
static bool GetDouble(const unsigned char* input, double& output)
static bool GetDouble(const wchar_t* input, double& output)
static bool GetInteger(const unsigned char* input, int& output)
static bool GetInteger(const wchar_t* input, int& output)
static bool GetMantissa(const unsigned char* input, int& output)
static bool GetMantissa(const wchar_t* input, int& output)
static bool GetToken(const char* * input, char* bufferToken, size_t buffer_len)
It returns the token in *input, the value of *input can be used in successive calls to extract a sequence of token, the function returns false if error i.e. const char * input = "one two three"; char bufferToken[32]; Sys::TextAssistant::GetToken(&input, bufferToken, 32); bufferToken is "one" Sys::TextAssistant::GetToken(&input, bufferToken, 32); bufferToken is "two"
static bool GetToken(const wchar_t* * input, wchar_t* bufferToken, size_t buffer_len)
It returns the token in *input, the value of *input can be used in successive calls to extract a sequence of token, the function returns false if error i.e. const char * input = "one two three"; char bufferToken[32]; Sys::TextAssistant::GetToken(&input, bufferToken, 32); bufferToken is "one" Sys::TextAssistant::GetToken(&input, bufferToken, 32); bufferToken is "two"
static bool IsChar(unsigned char input)
static bool IsChar(wchar_t input)
static bool IsCharAccent(unsigned char input)
static bool IsCharAccent(wchar_t input)
static bool IsDigit(unsigned char input)
static bool IsDigit(wchar_t input)
static bool IsDouble(const char* input)
static bool IsDouble(const wchar_t* input)
static bool IsEmailAddress(const wchar_t* text)
static bool IsEmailAddressChar(wchar_t c)
static bool IsIntegerNumber(const unsigned char* input)
static bool IsIntegerNumber(const wchar_t* input)
static bool IsLowerCase(unsigned char c)
static bool IsLowerCase(wchar_t c)
static bool IsSeparator(const string& input, int index)
static bool IsSeparator(const wstring& input, int index)
static bool IsSeparator(unsigned char input)
static bool IsSeparator(wchar_t input)
static bool IsUnicode(const void* input, int inputSize)
static bool IsUpperCase(unsigned char c)
static bool IsUpperCase(wchar_t c)
static bool IsValidIdChar(unsigned char letter)
static bool IsValidIdChar(wchar_t letter)
static bool LoadFromResource(HINSTANCE hInst, int resource_id, string& output)
IDF_NAME BIN "items\\thread.txt" thread.txt is ASCII file
static bool LoadFromResource(HINSTANCE hInst, int resource_id, wstring& output)
IDF_NAME BIN "items\\thread.txt" thread.txt is an UNICODE file
static bool LoadFromUTF8Resource(HINSTANCE hInstance, int resource_id, wstring& output)
IDF_NAME BIN "items\\thread.txt" thread.txt is a UTF-8 file
static bool SeparateFilePathAndFilename(const wchar_t* input, wstring& out_path, wstring& out_filename)
static complex<double>ExtractComplex(int& position, const char* input)
static complex<double>ExtractComplex(int& position, const wchar_t* input)
static const char* GetDoubleFormat(double value)
It returns the best format for a _snprintf_s or Sys::Format to convert a double to text with maximum accuracy
static const wchar_t* GetDoubleFormatW(double value)
It returns format for a _snwprintf_s or Sys::Format to convert a double to text with maximum accuracy
static double ExtractDouble(int& position, const char* input, int input_length)
It returns the double value in input at the specified position, the value of position can be used in successive calls to extract a sequence of double values
static double ExtractDouble(int& position, const wchar_t* input, int input_length)
It returns the double value in input at the specified position, the value of position can be used in successive calls to extract a sequence of double values
static int Delete(string& in_out, const char* deleteThisText, bool matchWholeWord)
static int Delete(wstring& in_out, const wchar_t* deleteThisText, bool matchWholeWord)
static int DeleteAfter(string& in_out, const unsigned char character)
static int DeleteAfter(wstring& in_out, const wchar_t character)
Deletes the text after the provided character
static int DeleteChar(string& in_out, char remove)
static int DeleteChar(wchar_t* in_out, wchar_t remove)
static int DeleteChar(wstring& in_out, wchar_t remove)
static int ExpandEscapeSequences(const wstring& input, wstring& output)
static int Find(const wchar_t* input, size_t positionStart, const wchar_t* findThis)
The function finds some text in an input string starting the search at positionStart if the text is found, it returns the position of the word. Otherwise, it returns -1 Note that the search is case sensitive
static int Find(const wchar_t* input, size_t positionStart, const wchar_t* findThis, bool matchWholeWord, bool matchCase)
The function finds some text in an input string starting the search at positionStart if the text is found, it returns the position of the word. Otherwise, it returns -1
static int FindWholeWord(const wchar_t* input, size_t positionStart, const wchar_t* findThisWord)
The function finds a whole word in an input string starting the search at positionStart if the word is found, it returns the position of the word. Otherwise, it returns -1 Note that the search is case sensitive
static int GetFindCount(const string& input, const string& findThis, bool matchWholeWord)
It returns the number of ocurrences of findThis that are in the variable input
static int GetFindCount(const wchar_t* input, const wchar_t* findThis, bool matchWholeWord, bool matchCase)
It returns the number of ocurrences of findThis that are in the variable input
static int GetFindCount(const wstring& input, const wstring& findThis, bool matchWholeWord)
It returns the number of ocurrences of findThis that are in the variable input
static int GetTokens(const wchar_t* input, wchar_t separator, vector<wstring >& out_tokens)
Example: input = "Uno-Two-Three-Four" separator = '-' will produce out_tokens[0] = "Uno", out_tokens[1] = "Two", ...
static int Replace(const wchar_t* input, wstring& output, const wchar_t* findThis, const wchar_t* replaceWithThis, bool matchWholeWord, bool matchCase)
The function finds some text in an input string. If the text is found, it replaces the text. The function returns the number of replacements. This is a high performance function!
static int Replace(string& in_out, const char* findThis, const char* replaceWithThis, bool matchWholeWord)
static int Replace(wstring& in_out, const wchar_t* findThis, const wchar_t* replaceWithThis, bool matchWholeWord)
The function finds some text in an input string. If the text is found, it replaces the text. The function returns the number of replacements
static int Replace(wstring& in_out, const wchar_t* findThis, const wchar_t* replaceWithThis, bool matchWholeWord, bool matchCase)
The function finds some text in an input string. If the text is found, it replaces the text. The function returns the number of replacements
static int ReplaceBiggerLessThan(const wchar_t* input, wstring& output)
static int ReplaceChar(string& in_out, char oldChar, char newChar)
static int ReplaceChar(unsigned char* in_out, unsigned char oldChar, unsigned char newChar)
static int ReplaceChar(wchar_t* in_out, wchar_t oldChar, wchar_t newChar)
static int ReplaceChar(wstring& in_out, wchar_t oldChar, wchar_t newChar)
static int SmartDelete(string& in_out, const string& start, const string& end)
static int SmartDelete(wstring& in_out, const wstring& start, const wstring& end)
Deletes all occurrences of the string that begins with start and ends with end
static int StringCompareWithAccents(const unsigned char* string1, const unsigned char* string2)
It returns zero, when string1 is identical to string2 It returns -1, when string1 is less than string2 It returns 1, when string1 is greater than string2
static int StringCompareWithAccents(const wchar_t* string1, const wchar_t* string2)
It returns zero, when string1 is identical to string2 It returns -1, when string1 is less than string2 It returns 1, when string1 is greater than string2
static string& FirstUppercase(string& in_out)
static string& Format(string& text, const char* format, . . .)
static string& RemoveExtraSpaces(string& in_out)
Removes carriage returns, tabs and extra spaces
static string& RemoveTrailingSpaces(string& in_out)
It delete spaces, tabs, line returns or line carriage at the beginning and at the end
static string& ReplaceAccents(string& in_out)
static string& ToLower(string& in_out)
static string& ToUpper(string& in_out)
static string& TruncateToFit(HDC hdc, const string& input, string& output, int width, bool appendEllipses)
static unsigned char ReplaceAccents(unsigned char c)
static unsigned char ToLower(unsigned char c)
static unsigned char ToUpper(unsigned char c)
static unsigned int StringCompareWithAccents(wchar_t c)
It returns a number from 0 to 511 when c is: a, á, ä, ... b, c, ...
static void FirstUppercase(unsigned char* in_out)
static void FirstUppercase(wchar_t* in_out)
static void GetStopWordsInEnglish(set<wstring >& output)
It gets a set of the most common words in English; you may call output.clear() before calling the function
static void GetStopWordsInSpanish(set<Sys::Wstring >& output)
It gets a set of the most common words in Spanish; you may call output.clear() before calling the function
static void GetWordList(const wchar_t* folder, const wchar_t* filter, int textEncoding, set<wstring >& output)
It gets the list of words in the files in the folder and subfolders; you may call output.clear() before calling the function folder: C:\\Users\\Mike filter: *.txt textEncoding: SYS_GETWORDLIST_ASCII, SYS_GETWORDLIST_UNICODE, SYS_GETWORDLIST_UTF8
static void GetWordList(const wchar_t* input, set<Sys::Wstring >& output)
It gets the list of words in some text; you may call output.clear() before calling the function
static void GetWordList(const wchar_t* input, set<wstring >& output)
It gets the list of words in some text; you may call output.clear() before calling the function
static void GetWordList(const wchar_t* input, vector<wstring >& output)
It gets the list of words in some text; you may call output.clear() before calling the function
static void ReadCsv(const wchar_t* csvText, const size_t len, vector<vector<wstring>>& output)
static void RemoveInvalidChars(const char* input, string& output)
Removes control characters
static void RemoveInvalidChars(const wchar_t* input, wstring& output)
Removes control characters
static void ReplaceAccents(const unsigned char* in, unsigned char* out)
static void ReplaceAccents(const wchar_t* in, wchar_t* out)
static void ReplaceAccents(unsigned char* in_out)
static void ReplaceAccents(wchar_t* in_out)
static void ToLower(const unsigned char* in, unsigned char* out)
static void ToLower(const wchar_t* in, wchar_t* out)
static void ToLower(unsigned char* in_out)
static void ToLower(wchar_t* in_out)
static void ToUpper(const unsigned char* in, unsigned char* out)
static void ToUpper(const wchar_t* in, wchar_t* out)
static void ToUpper(unsigned char* in_out)
static void ToUpper(wchar_t* in_out)
static wchar_t ReplaceAccents(wchar_t c)
static wchar_t ToLower(wchar_t c)
static wchar_t ToUpper(wchar_t c)
static wstring& FirstUppercase(wstring& in_out)
static wstring& Format(wstring& text, const wchar_t* format, . . .)
wstring - %s passing myString.c_str()
static wstring& RemoveExtraSpaces(wstring& in_out)
Removes carriage returns, tabs and extra spaces
static wstring& RemoveTrailingSpaces(wstring& in_out)
It delete spaces, tabs, line returns or line carriage at the beginning and at the end
static wstring& ReplaceAccents(wstring& in_out)
static wstring& ToLower(wstring& in_out)
static wstring& ToUpper(wstring& in_out)
static wstring& TruncateToFit(HDC hdc, const wstring& input, wstring& output, int width, bool appendEllipses)

TextBufferA
TextBufferA()
bool WriteText(const string& source)
~ TextBufferA()

TextBufferW
TextBufferW()
bool WriteText(const wstring& source)
~ TextBufferW()

TexturePoint
TexturePoint()
bool IsNull()
bool operator !=(const Sys::TexturePoint& init)const
bool operator <(const Sys::TexturePoint& init)const
bool operator ==(const Sys::TexturePoint& init)const
bool operator >(const Sys::TexturePoint& init)const
void Reset()
void Set(float u, float v)
void SetToNull()
~ TexturePoint()

Time: It provides support to manage Time
Sys::Time& AddDays(double days)
Sys::Time& AddHours(double hours)
Sys::Time& AddMinutes(double minutes)
Sys::Time& AddSeconds(double seconds)
Time& operator =(const Sys::Time& init)
Time()
Time(SYSTEMTIME st)
Time(const Sys::Time& init)
bool operator !=(const Sys::Time& st)const
bool operator <(const Sys::Time& st)const
bool operator <=(const Sys::Time& st)const
bool operator ==(const Sys::Time& st)const
bool operator >(const Sys::Time& st)const
bool operator >=(const Sys::Time& st)const
double GetSeconds() const
Since January 1, 1601.
static Sys::Time Now()
void Set(const FILETIME& input)
void Set(const std::tm& input)
void Set(const time_t input)
void Set(int day, int month, int year, int hour, int minute, int second, int milliseconds)
void SetFromUTC(const time_t input)
void SetToLocalTime()
void SetToUtcTime()
~ Time()

Wstring
Sys::Wstring& operator +=(const wchar_t* text)
Sys::Wstring& operator +=(wchar_t c)
Sys::Wstring& operator +=(wchar_t* text)
Sys::Wstring& operator =(const Sys::Wstring& init)
Wstring()
Wstring(const Sys::Wstring& init)
Wstring(const wchar_t* init)
bool Append(const wchar_t* text)
bool Append(wchar_t c)
bool Copy(wchar_t* buffer, size_t buffer_len)
bool IsEmpty() const
bool Set(const wchar_t* text)
bool operator <(const Sys::Wstring& init)const
bool operator ==(const Sys::Wstring& init)const
bool operator ==(const wchar_t* init)const
bool operator >(const Sys::Wstring& init)const
const wchar_t operator [ ](long index)const
const wchar_t* Get() const
int CreateFromStringTable(HINSTANCE hInstance, int id_resource)
Loads a string resource from the executable file associated with a specified module  Google Microsoft
int GetTextLength() const
operator const wchar_t*() const
operator const wstring() const
size_t GetSize() const
Including nullptr terminator
void Delete()
void SetSize(size_t size)
void ToLower()
void ToUpper()
wchar_t GetChar(long index)const
wchar_t& operator [ ](long index)
~ Wstring()

Xml: It provides support for reading and writing XML files
Sys::Xml& AddChild(const Sys::Xml& child)
It returns a reference to the new child
Sys::Xml& AddChild(const wchar_t* name)
It returns a reference to the new child
Sys::Xml& AddChild(const wchar_t* name, const wchar_t* value)
It returns a reference to the new child
Sys::Xml& AddChild(const wchar_t* name, const wchar_t* value, const map<wstring, wstring >& attribute)
It returns a reference to the new child
Sys::Xml& AddChild(const wstring& name)
It returns a reference to the new child
Sys::Xml& AddChild(const wstring& name, const wstring& value)
It returns a reference to the new child
Sys::Xml& AddChild(const wstring& name, const wstring& value, const map<wstring, wstring >& attribute)
It returns a reference to the new child
Xml(void)
bool CopyTo(Sys::IEnumerator& num)const
It copies the content of the object to an object that implement the Sys::IEnumerator interface
bool GetAttribute(const wchar_t* attribute_name, wstring& out_attribute_value)const
bool GetAttribute(const wstring& attribute_name, wstring& out_attribute_value)const
bool GetChild(const wchar_t* child_name, list<Sys::Xml >::iterator& out_child)
bool GetChild(const wstring& child_name, list<Sys::Xml >::iterator& out_child)
bool GetChild(int child_index, list<Sys::Xml >::iterator& out_child)
bool GetChildByNoPrefixName(const wchar_t* child_noPrefix_name, list<Sys::Xml >::iterator& out_child)
bool GetChildByNoPrefixName(const wstring& child_noPrefix_name, list<Sys::Xml >::iterator& out_child)
bool GetChildValue(const wchar_t* child_name, wstring& out_child_value)const
bool GetChildValue(const wstring& child_name, wstring& out_child_value)const
bool GetChildValue(int child_index, wstring& out_child_value)const
bool GetNameWithoutPrefix(wstring& out_name)const
i.e. out_name will be product for
bool GetPrefix(wstring& out_prefix)const
It returns the text of the name that is before the colon Example: prefix=so
bool Get_xmlns(const Sys::Xml& childNode, wstring& out_xmlns)const
You must call this function using the root node (the main node) to find the xmlns of a specific node If you insert or delete nodes, you must call RefreshNodeIDs before calling Get_xmlns()
bool Save(const wchar_t* filename)
bool SetChildValue(const wchar_t* child_name, const wchar_t* child_value)
bool SetChildValue(const wstring& child_name, const wstring& child_value)
bool SetChildValue(int child_index, const wchar_t* child_value)
bool SetChildValue(int child_index, const wstring& child_value)
const wchar_t* CreateFromString(const wchar_t* input_data)
const wchar_t* CreateFromString(const wstring& input_data)
const wchar_t* CreateFromUtf8(const Sys::Buffer& input)
const wchar_t* CreateFromUtf8String(const char* input_data)
const wchar_t* Load(const wchar_t* filename)
const wchar_t* Load(const wstring& filename)
const wchar_t* LoadFromResource(bool isUtf8, HINSTANCE hInstance, int resource_id)
IDF_NAME BIN "items\\thread.txt"
int GetMaxValueLength() const
It returns the text length of the longer value
int GetNode_ID() const
It returns an automatic generated node ID You may use the node ID to find the xmlns of the node
static bool IsXml(const char* input)
It returns true if the input is an XML document
static bool IsXml(const wchar_t* input)
It returns true if the input is an XML document
virtual void Enumerate(wchar_t* * data, int colCount, int rowIndex)
We use the first dummy node to create the rest of the nodes, otherwise automatic names will be generated
virtual ~ Xml(void)
void Delete()
void GetHtml(wstring& output_html)
void GetXmlText(Sys::ITextWriterW& output_data)
void GetXmlText(string& output_data)
void GetXmlText(wstring& output_data)
void RefreshNodeIDs()
You must call this function to update the IDs of all nodes You must call this function after making changes in the XML object (insertions or deletions) This function must be called using the root node (the main node)
void SetAttribute(const wchar_t* attribute_name, const wchar_t* attribute_value)
void SetAttribute(const wstring& attribute_name, const wstring& attribute_value)
© Copyright 2000-2021 selo. All Rights Reserved. Jul 22 2021.